マウスに合わせて画像を移動させる


動作ブラウザ 【 IE:4.0  NN:4.0
Internet Explorer Netscape Navigator DreamPassport iCab
3.0x 4.0x 4.5 5.0x 5.5 6.0 2.0x 3.0x 4.0x 4.x 6.0 2 3 2.x
Windows × - × × × - × -
Macintosh × - - × × × - - ×
UNIX - - - - - - × × × - - -
Dreamcast - - - - - - - - - - × × -

ポイント document.all["myImg"].style.left= event.x + 8; document.all["myImg"].style.top = event.y + 16; document.layers["myImg"].left = evt.x + 8; document.layers["myImg"].top = evt.y + 16; if (document.all) document.onmousemove = moveImage; if (document.layers) { window.onmousemove = moveImage; window.captureEvents(Event.MOUSEMOVE); }
説  明 画像をマウスに追従させるにはマウスの座標を逐次検出し文字の表示位置を再設定します。マウスの座標を逐次監視するためにonmousemoveイベントハンドラに処理関数名を指定します。IEではdocument.onmousemove、NNではwindow.onmousemoveに処理関数を設定します。NNの場合は設定しただけではイベントが拾えないためcaptureEvents()でマウス移動イベントを取得するように指定します。イベント発生後に呼び出される関数側ではマウス座標を読み出しますがIEの場合はevent.x、event.y、NNでは関数の引数名がevtとすればevt.x、evt.yとなります。文字の表示位置はIEでは「document.all["オブジェクト名"].style.left」「document.all["オブジェクト名"].style.top」、NNでは「document.layers["オブジェクト名"].left」「document.layers["オブジェクト名"].top」で設定することができます。
サンプル <html> <head> <title>マウスに合わせて画像を移動させる</title> <script language="JavaScript"><!-- function moveImage(evt) { if (document.all) { document.all["myImg"].style.left= event.x + 8; document.all["myImg"].style.top = event.y + 16; } if (document.layers) { document.layers["myImg"].left = evt.x + 8; document.layers["myImg"].top = evt.y + 16; } } if (document.all) document.onmousemove = moveImage; if (document.layers) { window.onmousemove = moveImage; window.captureEvents(Event.MOUSEMOVE); } // --></script> </head> <body> <div id="myImg" style="position:absolute;top:0px;left:0px;"> <img src="q.gif"> </div> </body> </html>
補足説明 IEではDIVタグでなくIMGタグのみでも動作させることができます。

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA