- 締切済み
マウスの位置をリアルタイムに取得
マウスの座標を取得するようにjavascriptを組んだのですが、マウスポインタが移動していないときは座標取得処理をしないようにする方法を探しています。 マウスの座標を変数に保存して最新の座標と比較するようにして、座標が動いたら、座標を画面に表示させるようにできますでしょうか? マウスポインタの古い座標の保存法がわかりません。 よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
onmousemoveイベントで座標取得処理を呼び出せば、マウスが動いた時だけ座標取得処理できます。 IEの時 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS"> <title>マウス座標取得</title> <script type="text/javascript"> <!-- function getXY(){ POINT.X.value=event.x; POINT.Y.value=event.y; } //--> </script> </head> <body onmousemove="getXY()"> マウス座標の表示 <form name="POINT"> X:<input type="text" name="X" value=""><br> Y:<input type="text" name="Y" value=""><br> </form> </body> </html> NN(FireFox)の時 <script type="text/javascript"> <!-- window.captureEvents(Event.MOUSEMOVE); onmousemove=getXY; function getXY(e){ POINT.X.value=e.pageX; POINT.Y.value=e.pageY; return true; } //--> </script>
お礼
BLUEPIXYさん こんにちは。どうもありがとうございます。 スクリプト参考にさせていただきます。
補足
古い座標を保存する方法がわかりました。 ファンクション内部で座標値を変数に保存してもマウスムーブで取得した値と比べようにも変数が宣言されていない旨のエラーが出ます。 ファンクションの外でグローバル変数として宣言していても、今度はファンクションの内部で新しい座標値を代入することができないのです。 ですから、古い値(適当な値)を変数宣言するのではなく、テキストボックスに書き出します。 古い座標と新しい座標の比較はテキストボックスの値を参照して行うのです。 私はまだJavaScriptに不慣れなもので、質問(タイトル)にうまく内容を書ききれていませんでした。この補足文は備忘録として、記述しておきます。