JavaScript講座
(メールマガジン編)

11/03日発行 ヨッシーの”ホームページを作ろう!(JavaScript編)”★Vol.18★

画像を扱ったプログラム

今回からは画像を使ったプログラムをやっていこう。
これで画像を使った凝ったページを表現できるよ。
今回は引数というものを実際に使ってみよう。

★ ボタンクリックで画像を変更する ★

まず、画像をフォームのボタンを使って切り替える方法をやってみよう。
まず、今回使う新しい命令だよ。

document.場所.src

場所にある画像のURL

これはある場所にある画像のURLを調べるための命令なんだ。
(※documentはブラウザの表示部のこと、srcは画像のURLのこと。
つまり、”ブラウザ表示部のある場所のURL”という意味 ←vol16参照)
じゃあ、少し簡単に見てみよう。


<img src="image.gif" name="myImg"> ←"myImg"という場所に"image.gif"の画像がある
   ↓
<SCRIPT language="JavaScript">
document.write(document.myImg.src) 
←"myImg"にある画像のURLを表示する
</SCRIPT>


このように、名前をつけた場所にある画像のURLを調べることができるんだ。
この命令を使うと、逆にある場所のURLを変更することができるんだ。
今回やるプログラムではその方法を使って画像を変更していくよ。

まずプログラムを見てみよう。


--ボタンで画像を切り替える--

<HTML>
<HEAD>
<TITLE>画像切り替え1</TITLE>
<SCRIPT language="JavaScript">
function Img(n){
document.myImg.src="img"+n+".gif";
}
</SCRIPT>
</HEAD>
<BODY>
ボタンを押して好きな画像を選んでね!
<hr>
<input type="button" value="画像1" onClick="Img(1)"><br>
<input type="button" value="画像2" onClick="Img(2)"><br>
<input type="button" value="画像3" onClick="Img(3)"><br>
<input type="button" value="画像4" onClick="Img(4)"><br>
<p>
<img border=1 src="img1.gif" name="myImg">
</BODY>
</HTML>

jamp.gif (1016 バイト)サンプル


--解説--

<HTML>
<HEAD>
<TITLE>画像切り替え1</TITLE>
<SCRIPT language="JavaScript">
function Img(n){             ←画像を切り替える関数
document.myImg.src="img"+n+".gif";
}
</SCRIPT>
</HEAD>
<BODY>
ボタンを押して好きな画像を選んでね!
<hr>
<input type="button" value="画像1" onClick="Img(1)"><br>
<input type="button" value="画像2" onClick="Img(2)"><br>
<input type="button" value="画像3" onClick="Img(3)"><br>
<input type="button" value="画像4" onClick="Img(4)"><br>
<p>
<img border=1 src="img1.gif" name="myImg"> ←画像を表示する(場所名"myImg")
</BODY>
</HTML>


まず、HTMLの部分を見てみよう。
この中でわかりやすいのはフォームのボタンだね。
ここでまずボタンを配置しているんだ。
次に、画像をその下に置いているね。

ここからがJavaScriptの説明になっていくんだけど、
まず、

    <img border=1 src="img1.gif" name="myImg">

の中にあるnameという部分。
ここから説明しよう。
これはこの画像を置いている場所を示しているんだ。
つまり、この画像を置いている位置に自分で好きな名前を付けることができるんだね。
このあと、画像を切り替えたりする時は、この名前をつかってこの位置にある画像を扱っていくんだよ。
とりあえず、今回はこの画像の位置に"myImg"という名前を付けておこう。

次に、ボタンを見てみよう。
ボタンによって画像を切り替えるわけだから、
onClickを使って、ボタンを押した時にある処理をしないといけないね。
その時に行う処理が、onClickの中にある"Img(2)"とかいう処理なんだ。
ここで、関数というものを思い出してほしいんだけど、(←vol.6,vol9)
Imgというのが関数で、12というのが引数というものなんだ。
この場合、"Img(2)"というのは"2"という数字を持って関数を実行してきてください、という意味になるんだね。

じゃあ、実際に関数を見てみると、function Img(n)という形になっているね。
これは関数のところでやったように、"Img"という名前の関数だね。
そして引数が"n"となっているんだ。
じゃあ、ここでさっきの"Img(1)"と今の"Img(n)"比べてみると、"n"の部分に"2"を持ってきたことになるね。
だから今回の場合、関数の中の"n""2"、つまり、n=2としてプログラムを見ていくことになるんだ。


(関数の中身)
function Img(n){
document.myImg.src="img"+n+".gif";
}


じゃあ、関数の中身を見てみると。
document.myImg.srcという命令が出ているね。
さっきやったように、
"document.myImg.src"というのは"myImg"という場所にあるURLを示しているので、
これを変更するということは、"myImg"にある画像を変更することになるんだ。
(※"myImg"とはさっき名前を付けた画像。上を見よ。)
ここで、
document.myImg.src="img"+n+".gif";
という風になっているね。
今は"Img(2)"として、"n=2"となっていたので。
このプログラムは変数を展開して、
document.myImg.src="img2.gif";
という風になるんだ。
だから、これで"myImg"にあった画像が、ボタンを押されることによって"img2.gif"に変わったんだ。
その場所にある画像のURLを変えるということは、当然その場所にある画像の表示も変わるということだよね。
実際に、このプログラムを写して(できれば自分で)やってみよう。
画像は自分で用意してね。
(※画像が無い人は、僕のページから勝手に取っていってください)


 

<問題>
[命令]のところを埋めて、
画像が一定時間ごとに変化するようにせよ。
また、余力のある人はアニメーションをストップさせるボタンも作れ。
★clearTimeoutを使う。使い方はvol.12のclearIntervalと同じ★
(※これはアニメーションの原理、このプログラムでアニメーションも作れる)

〜ここから(スライドショーのみ)〜
<HTML>
<HEAD>
<TITLE>スライドショー</TITLE>
<SCRIPT language="JavaScript">
function slideshow(){
    [命令]
}
</SCRIPT>
</HEAD>
<BODY>
ボタンを押してスライドショーを見よう!
<hr>
<input type="button" value="開始" onClick="slideshow()">
<p>
<img border=0 src="img1.gif" name="myImg">
</BODY>
</HTML>

 

〜ここから(停止ボタン付き)〜
<HTML>
<HEAD>
<TITLE>スライドショー</TITLE>
<SCRIPT language="JavaScript">
function slideshow(){
    [命令]
}
function end(){
    [命令]
}
</SCRIPT>
</HEAD>
<BODY>
ボタンを押してスライドショーを見よう!
<hr>
<input type="button" value="開始" onClick="slideshow()">
<input type="button" value="停止" onClick="end()">
<p>
<img border=0 src="img1.gif" name="myImg">
</BODY>
</HTML>


 


back.gif (1116 バイト) next.gif (705 バイト) top.gif (583 バイト)