JavaScript講座
(メールマガジン編)
11/17日発行 ヨッシーの”ホームページを作ろう!(JavaScript編)”★Vol.19★
| 画像を扱ったプログラムU |
今回も前回に続き、画像を使ったプログラムをやっていこう。
今回はフォームの選択メニューを使った画像の切り替えをやってみようね。
| ★ 選択メニューを使った画像切り替え ★ |
まず、画像をフォームの選択メニューを使って切り替える方法をやってみよう。
今回は以前(vol.16)やったビルドインオブジェクトの考え方がでてくるんだ。
まずプログラムを見てみよう。
<HTML>
<HEAD>
<TITLE>画像切り替え1</TITLE>
<SCRIPT language="JavaScript">
<!--
function change(){
no = document.form.select.selectedIndex;
if(no==0){
document.myImg.src="img1.gif";
}
else if(no==1){
document.myImg.src="img2.gif";
}
else if(no==2){
document.myImg.src="img3.gif";
}
else if(no==3){
document.myImg.src="img4.gif";
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
選択メニューから好きな画像を選択してね
<hr>
<form name="form">
<select name="select">
<option>画像1
<option>画像2
<option>画像3
<option>画像4
<input type="button" value="決定" onClick="change()">
</form>
<p>
<img border=1 src="img1.gif" name="myImg">
</BODY>
</HTML>
--解説--
<HTML>
<HEAD>
<TITLE>画像切り替え2</TITLE>
<SCRIPT language="JavaScript">
<!--
function change(){
no = document.form.select.selectedIndex; ←選んだものをnoに代入
if(no==0){ ←noによって表示する画像を決める
document.myImg.src="img1.gif";
}
else if(no==1){ ←no=1ならば、
document.myImg.src="img2.gif"; ←"img2.gif"を"myImg"に表示する
}
else if(no==2){
document.myImg.src="img3.gif";
}
else if(no==3){
document.myImg.src="img4.gif";
}
}
</SCRIPT>
</HEAD>
<BODY>
選択メニューから好きな画像を選択してね
<hr>
<form name="form"> ←フォームの名前を"form"とした
<select name="select"> ←セレクトボックスの名前を"select"とした
<option>画像1
<option>画像2
<option>画像3
<option>画像4
<input type="button" value="決定" onClick="change()">
</form>
<p>
<img border=1 src="img1.gif" name="myImg">
</BODY>
</HTML>
まず、HTMLの部分を見てみよう。
この中ででてくる、選択フォームの書き方についてはホームページのHTML講座を参考にしてね。
ここで、
<form name="form">
<select name="select">
という2つのタグがあるね。
それぞれ、フォームには"form"、セレクトボックスには"select"という名前を付けておこう。
(※これが後で画像の選択のところで出てくる)
↑全体をformという名前にする
あとは、onClick="change()"があるので、ボタンを押すとchange()が呼び出されるね。
じゃあ、今からそのchange()という関数を見ていこう。
(関数の中身)
=change()関数=<SCRIPT language="JavaScript">
<!--
function change(){
no = document.form.select.selectedIndex;
if(no==0){
document.myImg.src="img1.gif";
}
else if(no==1){
document.myImg.src="img2.gif";
}
else if(no==2){
document.myImg.src="img3.gif";
}
else if(no==3){
document.myImg.src="img4.gif";
}
}
//-->
</SCRIPT>
ここで一番大事(というか新しいのはここだけ)なのは、
no = document.form.select.selectedIndex;
の1文なんだ。
選ばれたセレクトボックスの場所を返す
document.フォーム名.セレクトボックス名.selectedIndex
ここで、以前やったビルドインオブジェクトというものを思い出してみよう。
とりあえず、上の1行の意味は、「"no"という変数に"document.form.select.selectedIndex"の値を入れる」という意味だね。
つまり、"document.form.select.selectedIndex"の部分の意味がわかれば、この1行の働きがわかるよね。document.form.select.selectedIndex
これは、"."でつながっているので、ビルドインオブジェクトと考えよう。
じゃあ、1つずつ内容を見てみよう。document :ブラウザの表示部分
form :formという名前の部分(フォームの名前として決めた)
select :selectという名前の部分(セレクトボックスの名前として決めた)
selectedIndex :セレクトボックスの上から0,1,2,3....という値を返すつまり、以前も言ったように、ビルドインオブジェクトというのは、ある場所を指定するときに1つずつ場所をたどって指定しているんだ。
今の場合だと、ブラウザの表示部分にある
↓
"form"という名前のフォームの
↓
"select"という名前のセレクトボックスの
↓
選んだものによって値を返す。(selectedIndex)※よくわからない人は、上のプログラムと見比べてみよう
selectedIndexには上から0,1,2,3....という値が設定されているんだ。
つまり、セレクトボックスの中の、
1番上にある"画像1"には"0"、
2番目にある"画像2"には"1"、
3番目にある"画像3"には"2"、
・
・
・
という値が入っているので、選んだ画像によって、そこに入っている"0"、"1"、"2"が返ってくるんだ。
もう少し簡単に言うと、
"画像1"を選ぶと"0"が
"画像2"を選ぶと"1"が
"画像3"を選ぶと"2"が
・
・
・
返ってくる。
ということなんだ。
ここまでで、document.form.select.selectedIndexの話は終わり。
だから、no = document.form.select.selectedIndex;というのは、選んだ画像によってnoに入る数字が変わるということだね。
そして、そのあとでif文でnoによって表示する画像を場合分けしているんだ、
(※if(no == 0){document.myImg.src="img1.gif";}・・・の部分)
| <問題> [命令]のところを埋めて、 画像の上にマウスを移動させると、 その画像の説明をテキストボックスに表示するようなプログラムを作れ。 ※テキストボックスに文字を表示する方法は、
※余力があれば、下のLevel2とLevel3もやってみよう。 〜Level.1〜 〜Level2〜 〜Level3〜 <HTML> |