2-4 カーソルが触れた時に別の画像を表示

画像にマウスカーソルが接触した時に、別の画像が表示されるように設定してください。

ファイル名は js2-4.html  としてください。

実行例


※この例では、クリックしたらYahooにジャンプするようになっています。

サンプル

 

: 省略

1: <script language="JavaScript">
2: <!--
3:
4: ImgOut = new Image();
5: ImgOut.src = "button_out.gif";
6: ImgOver = new Image();
7: ImgOver.src = "button_over.gif";
8:
9: function MouseOutImg(){
10:    document.Image1.src = ImgOut.src;
11: }
12:
13: function MouseOverImg(){
14:    document.Image1.src = ImgOver.src;
15: }
16:
17: // -->
18: </script>

  : 省略

20: <a href="http://www.yahoo.co.jp/" onMouseOver="<省略>" onMouseOut="<省略>">
21: <img border="0" name="Image1" src="button_out.gif">
22: </a>

  : 省略

この問題では、以下の画像を使用します。
[ 右クリック ] → [ 画像を名前を付けて保存 ] などで各自保存してください。
※別の画像を使用しても構いません。

button_out.gif button_over.gif

解説

おおまかな流れ

マウスカーソルが画像に重なった時や、離れた時を検知するには

タグにイベントハンドラ onMouseOver を追加しておくと、
そのタグの範囲にマウスカーソルが重なった時、任意のJavascriptを実行することができます。
(例)
<table  onMouseOver="window.alert('何らかのメッセージ');" > ・・・・</table>
テーブル(表)にマウスが重なった時、メッセージが表示される。

また、タグにイベントハンドラ onMouseOut を追加しておくと
そのタグの範囲からマウスカーソルが離れた時に、任意のJavascriptを実行することができます。
(例)
<p  onMouseOut="window.alert('何らかのメッセージ');" > ・・・・</p>
段落からマウスカーソルが離れた時、メッセージが表示される。

画像を置き換えるには

画像タグはIMGタグ(<img  src="画像ファイル名">)で表示しますが、
name 属性で名前をつけておけば、 Javascriptから画像を別のものに入れ替えることができます。
たとえば、
画像に Image1 という名前をつけた場合
<img src="画像ファイルの名前"  name="Image1">
画像につけた名前の後ろに .src をつけて
document.Image1.src = "置き換えたい画像ファイルの名前";
とすると画像を入れ替えられます。

プログラム本体の解説

4〜7行目:
4: ImgOut = new Image();
5: ImgOut.src = "button_out.gif";
6: ImgOver = new Image();
7: ImgOver.src = "button_over.gif";
マウスカーソルが画像に触れたときや離れたときに、瞬時に表示を変えるために、あらかじめ画像をメモリに読みこんでおきます。
この処理を行わないと、最初にマウスカーソルが画像に触れた時に画像の読み込みが始まるので、
画像の切り替えが少し遅れたり、ちらついたりして、見栄えが悪くなります。
ImgOut = new Image(); で ImgOut 変数は、画像用の変数として準備されます。
そして、 ImgOut.src = "button_out.gif"; で ImgOut 変数に、実際に画像を読み込んでいます。

マウスが重なった時と、離れた時用に、2つの画像をそれぞれ ImgOver と ImgOut に読み込んでいます。

9行目:
9: function MouseOutImg(){
マウスが離れた時用の関数 MouseOutImg を定義しています。

13行目:
13: function MouseOverImg(){
マウスが重なった時用の関数  MouseOverImg を定義しています。

参考

このスクリプトを使うと、
メニューにマウスカーソルが触れると 色が変わったり、
画像に触れると 拡大画像が表示されたり、
文字やアイコンに触れると ヘルプメッセージが表示される、
といった処理ができるでしょう。