<script>
var image1=new Image();
image1.src = "image/ny.jpg";
var image2=new Image();
image2.src = "image/tokyo.jpg";
var i = 1;
function change(){
if(i==1){
element.src=image2.src;
i=2;
}else{
element.src=image1.src;
i=1;
}
}
</script>
<img id="photo" src="image/ny.jpg" />
<script>
var element = document.getElementByid("photo");
element.onclick=change;
</scropt>
オンクリックで画像が切り替わるというスクリプトなのですが、
new Image() というのは new date() と言うのと関係しているのでしょうか。
var i=1 と言うあたりからよくわからなくなってしまいます。
最後のelement.onclick=change;と言うのもよくわかりません。
スクリプトを平易な日本語で、簡単に説明してもらえるとありがたいです。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No.1
- 回答日時:
こんにちは。
>new Image() というのは new date() と言うのと関係しているのでしょうか
Imageオブジェクトを使いますという宣言です。
new Date()はDateオブジェクトを使いますという宣言です。
使うものは違いますが、やっていることは一緒です。
// image1はImageオブジェクト
var image1=new Image();
// Imageオブジェクトのsrcに画像を設定
image1.src = "image/ny.jpg";
// image1と同じ
var image2=new Image();
image2.src = "image/tokyo.jpg";
// iをグローバル変数として宣言し1を代入
var i = 1;
// changeという関数を設定
function change(){
// iを判別
if(i==1){
// iが1の場合はelement(すなわちid="photo"の画像)に
// image2.srcを設定(image2.srcはimage/tokyo.jpgなのでtokyo.jpgに切り替わる
element.src=image2.src;
// iを2にする
i=2;
}else{
// iが1以外の場合(この場合2になっている)
// image1.srcを設定(image1.srcはimage/ny.jpgなのでny.jpgに切り替わる
element.src=image1.src;
// iを1にする
i=1;
}
}
最初にクリックしたときはi=1なのでtokyo.jpgに切り替えてi=2にします。
次にクリックするとi=2なのでny.jpgに切り替えてi=1にします。
(これが繰り返されます)
element.onclick=change;
これは<img id="photo">をelementに取得していますので
<img id="photo">のクリックイベントにchange関数をセットしています。
こうすうることで上記で説明した動きをクリックするたびに実行します。(change関数が呼ばれる)
この回答への補足
大変ありがとうございます。
>// image1はImageオブジェクト
>var image1=new Image();
なぜここでオブジェクトを使うのですか。(済みません超基本がわかっていません)
var image="image/ny.jpg"; とかではだめなんでしょうか。
>element.onclick=change;
>これは<img id="photo">をelementに取得していますので
><img id="photo">のクリックイベントにchange関数をセットしています。
ここの部分はわかった気がします。ありがとうございます。
>var i = 1
のあたりも、少し考えたらわかりました。指呼し前に出た本からの引用なので、書き方が古いか、
初心者用に書いてあるかもしれません。違う書き方とかあったら教えてください。(求めすぎで済みません)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
二次元配列を使って順位をだす...
-
読み込んだQRコードをフォーム...
-
jQueryで同じクラス名のものを...
-
正規表現について質問です。条...
-
ローディングアニメーションの...
-
GASでGoogleフォームの自動返信...
-
スマホ上で、左右スワイプで次...
-
ブックマークレットについて
-
React hooksが値を返して配列変...
-
画面遷移を行わずに同一ページ...
-
clear機能を失わずにファイルア...
-
初心者です。gulpでコンパイル...
-
セレクトボックスで配列を呼び...
-
追加ボタンを押した際に ok ボ...
-
①入力フォーム→②確認表示画面→③...
-
EasyUIのSubGrid(jquery)にお...
-
Q&A掲示板の入力フォームに文字...
-
メールフォームの日付入力フォ...
-
HTMLタグに複数のクラスを設定...
-
Googleフォームで選択肢に応じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
var exports = exports || {}; ...
-
HTMLタグに複数のクラスを設定...
-
jsで質問です。 displayプロパ...
-
画面遷移を行わずに同一ページ...
-
Googleフォームで選択肢に応じ...
-
特定の文字列を複数抜き出した...
-
フロントエンドフレームワーク...
-
変数名をどのようにつけるのが...
-
【JS】selectでchangeした時の...
-
React hooksが値を返して配列変...
-
オブジェクトから任意のプロパ...
-
指定時間になったら、WEBサイト...
-
Colorboxがうまく設置できません
-
二次元配列の中の各行の要素を...
-
読み込んだQRコードをフォーム...
-
IndexedDB を使ってファイルア...
-
HTMLで作った時報アプリが動き...
-
GASに文字列として関数を入れる...
-
GASでGoogleフォームの自動返信...
-
①入力フォーム→②確認表示画面→③...
おすすめ情報