• 締切済み

マウスの位置をリアルタイムに取得

マウスの座標を取得するようにjavascriptを組んだのですが、マウスポインタが移動していないときは座標取得処理をしないようにする方法を探しています。 マウスの座標を変数に保存して最新の座標と比較するようにして、座標が動いたら、座標を画面に表示させるようにできますでしょうか? マウスポインタの古い座標の保存法がわかりません。 よろしくお願い致します。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

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>

quick-nono
質問者

お礼

BLUEPIXYさん こんにちは。どうもありがとうございます。 スクリプト参考にさせていただきます。

quick-nono
質問者

補足

古い座標を保存する方法がわかりました。 ファンクション内部で座標値を変数に保存してもマウスムーブで取得した値と比べようにも変数が宣言されていない旨のエラーが出ます。 ファンクションの外でグローバル変数として宣言していても、今度はファンクションの内部で新しい座標値を代入することができないのです。 ですから、古い値(適当な値)を変数宣言するのではなく、テキストボックスに書き出します。 古い座標と新しい座標の比較はテキストボックスの値を参照して行うのです。 私はまだJavaScriptに不慣れなもので、質問(タイトル)にうまく内容を書ききれていませんでした。この補足文は備忘録として、記述しておきます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JavaScriptでマウス位置をリアルタイムで取得

    ウィンドウを開いたら、マウス位置をリアルタイムで取得し、ウィンドウ上に表示ということをしたいのですが、まったくわかりません。 function mousecursor(evt){ //関数の定義 X = event.x; //イベント発生場所のX座標取得 Y = event.y; //イベント発生場所のY座標取得 window.status = X + "," + Y;} //ステータスバーに表示 document.onmousemove = mousecursor; //マウスカーソルが動いたら、関数を呼び出す。(bodyタグで呼び出しも可) というようなソースを手に入れたのでやってみたら、できることはできたんですが、なんとなくしか意味がわかってません。 HTMLやPerl、VBAなどはできるんですが、どうしてもJavaScriptがあんまり理解できないんです…。 リアルタイムで取得し、表示、ということではなくても、自分の任意したように出力させたいんです。 (たとえばどこかをクリックしたらアラート表示など) よろしくお願いします。

  • マウスオーバーで画像ズーム(起点取得)

    こんにちは。 マウスオーバーすると画像をズームするスクリプトを考えているのですが、オーバーするときに起点をポインタに合わせるにはどうすればいいのでしょうか? http://oshiete1.goo.ne.jp/kotaeru.php3?q=1444680 こちらの過去ログのスクリプトで、「ズーム」自体はできるのですが、これだと起点が固定になってしまい、画面外にはみ出す部分は見られません。 画面を最大幅に合わせると言うことも考えたのですが、あまり大きな余白が取れず、断念しました。 やりたいのは、例えば200*200の限られた枠があって、そこにデフォルトで200*200の画像があり、マウスを持って行くとマウスポインタが当たっている部分が大きくなるというものです。(枠自体は変わらず、中身だけ大きくなる) *** //ムービークリップ(MC)がロード(表示)されたとき onClipEvent (load) {   //変数ySclとxSclにこのMCの最初の座標を確保   yScl = this._yscale;   xScl = this._xscale; } *** ここの座標をマウスポインタから取得すれば…と思い、いろいろ苦し紛れにやっているのですが、うまく動きません。 ご教授の程、よろしくお願いします。

    • ベストアンサー
    • Flash
  • マウスポインタ 決まった位置へ 移動

    win10を使っています。 マウスポインタを登録した座標(毎回同じ場所)に簡単に移動させることはできませんか? ゲーミングキーボードを使っていますが、登録したキーを押すとマウスポインタが登録した場所に移動する様な事がしたいです。 その他にも何か良い方法がありましたら教えてください。

  • マウスカーソルの位置を取得したい

    Component上でのマウスカーソル位置は、そのコンポーネントに MouseMotionListenerを設定することにより取得できますが、 Conponentに関係なく画面上でのマウスカーソルの位置を取得するには どのようにすれば良いのでしょうか? 同じ質問ですが、別の表現をしてみると、java.awt.Robotクラスの mouseMoveメソッドを用いれば、(Componentに関係なく)画面上の 任意位置にマウスカーソルを移動できますが、この逆の機能として カーソルの位置を取得する機能は、どの様に実装すれば良いのでしょうか? 以上、よろしくお願い申し上げます。

    • ベストアンサー
    • Java
  • NN系でマウス座標取得

    お世話になります。 javascriptにてマウス座標を取得するファンクションを作成したいと 考えております。 そこで以下のソースでも取得可能だと思うのですが NN系でイベントが走らない場合でもマウス座標を 取得するファンクションを作成したいです。 すごく簡単なのかもしれませんが、ご教授宜しくお願い致します。 function getMouseY(e){  if(document.all) return document.body.scrollTop+event.clientY else if(document.layers||document.getElementById) return e.pageY }

  • マウス位置取得方法

    いつもお世話になっております。 現在tableの各セルにonmouseoverを入れて、マウスの動きに追従してセルの色が変わるものを作っています。 その際、マウスを高速で動かすとマウスに色の変化が付いてこない状態になってしまいます。 原因は td.style.backgroundColor="#FFOOFF" という処理は行われているのですが、マウスを動かし続けるとonmouseoverが呼ばれ続けて、styleの表示の反映が遅れているようです。 そこで解決する方法を考えて調査したのですが方法がわからなかったのでお聞きします。 方法)onmouseoverが呼ばれたセルと現在マウスがあるセルを比較して違うものであった場合、関数を終了する。 この方法は、マウスが連続して動いているときは関数を処理しないでおく方法ですが、関数を呼ばれた後にマウスが動いたことを察知する方法がわかりません。 javascriptはマルチスレッドができないので、関数のそのステップ現在でのマウスの位置を知る方法がありましたらご教授願います。 現在のコードは以下のようなものです。 <script> function hoge() { //通過したセルの色を変える } </script> <table> <TR> <TD onmouseover="hoge();"></TD> ..... <TD onmouseover="hoge();"></TD> </TR> </TABLE> このようなtableのセルが300ほどあります。 以上、何かできることがありましたら、ちょっとしたことでも情報をいただきたいです。 よろしくお願いします。

  • 最初に表示した時のマウスの位置を指定したい。

    背景に人物画像のムービークリップを配置し、適当な大きさの矩形ムービーを作成、Scriptにて「setMask」と「startDrag("",true)」を記述して、マウスの動きに合わせてマスクが移動するようにしています。 処理自体には何の問題もないのですが、Loadした時点で人物画像の顔の部分にマスクが設定されるようにしたいのですが、マウスポインターを強制的に設定する事は可能なのでしょうか?。 _xmouse,_ymouseを指定してみましたが、意図した座標にマウスポインターを配置する事は出来ませんでした。 どうぞ宜しく御願いします。

    • ベストアンサー
    • Flash
  • エクセルシート上のマウスポインタ座標の取得

    こんにちは。エクセルVBAの初心者です。 エクセルでシート上のマウスポインタの座標を取得する方法はありますか?色々やってみたのですがわからない感じです。もし分かれば教えてください。お願いします。 セルのアドレスではなくて、ポイント数で知りたい感じです。 マウスのモニタ座標とフォーム上での座標はなんだか色々調べたら取得することが出来た感じなのですが、シート上の座標をポイント数で取得することができない感じです。 なんかモニタ座標は型がLong型で、エクセルのシートのポイントはDouble型なので互いに採用しているポイントと単位が違うので全く別物だろうとは思いますが、一番うれしいのはエクセルシートのポイントが分かること、次が、ウィンドウのサイズや位置に左右されない、アクティブウィンドウのローカル座標(とか言えばいいのでしょうか?)が知れたらうれしいです。 すみません。分かる人、どうか教えてください。よろしくお願いします。

  • Excelグラフ内でのマウス座標の取得マクロ

    Excelの散布図のプロットエリア内でのマウス座標を取得するマクロを教えて下さい。 データのプロットだけでなく、プロットエリア内の任意の場所でのマウス座標です。 座標は画面の座標ではなく、グラフの軸の目盛での座標です。 よろしくお願いします。

  • ページ上でマウスポインタが見えなくなります。

    ページ上でポインタが見えなくなります。例えばヤフーのトップページではそのようなことはないのですが、ニュースページなどに移動すると、文字が表示されている部分でポインタが見えなくなります。 この質問入力画面なんかでもそのようになります。 クリック可能なところに移動させると再び見えるようになります。 どうにも不便ですので、解決法をご存知の方がおられたらご教示お願いします。 OSはVISTAです。ページ上でマウスポインタが消えます。