.mousemove()

要素のmousemoveイベントにバインドします。また、mousemoveイベントを実行します。

このメソッドは、1つ目と2つ目は.bind('mousemove', handler)への、3つ目は.trigger('mousemove')への ショートカットです。

mousemoveは対象要素内でマウスポインターを動かすたびにイベントが発生します。 ほとんどの要素でこのイベントを受け取る事が可能です。

.mousemove( handler(eventObject) ) 1.0追加

戻り値:jQuery

要素のmousemoveイベントにバインドします。また、mousemoveイベントを実行します。

引数 説明
handler(eventObject) イベントが発生した際に、実行したい処理を関数として指定します。

.mousemove( [eventData], handler(eventObject) ) 1.4.3追加

戻り値:jQuery

要素のmousemoveイベントにバインドします。また、mousemoveイベントを実行します。

引数 説明
[eventData] マップ値を指定することで、データをイベントハンドラーに渡すことが出来ます。
handler(eventObject) イベントが発生した際に、実行したい処理を関数として指定します。

.mousemove() 1.0追加

戻り値:jQuery

mousemoveイベントを発生させます。

注意事項

このイベント発生中、マウスポインタの正確な位置を取得することができます。 この位置情報に関する、.clientX, .offsetX, .pageXのようなプロパティを利用できますが、各ブラウザによって サポート状況が異なります。 jQueryでは、.pageX、.pageYのプロパティを全てのブラウザで標準化して使用することができます。 これらのプロパティはDocumentの左上端からのマウスポインタの相対的な座標を提供します。

マウスポインタが移動されるたびにmousemoveイベントが実行されることに注意してください。 ほんの短い時間内に大量のイベントが実行されることになり、ブラウザのパフォーマンスを著しく低下させることに繋がります。 mousemoveイベントハンドラを使用する際は、不必要になったら即座にアンバインドするなどして、 最適化することに最大限注意を払うべきです。

このイベントはmousedownイベント発生から、mouseupイベント発生までの間に使用されるケースが多いと思われます。 この一連の処理を実装する場合、mousedownとmouseupでイベントが送信されるHTML要素が異なる可能性があるため、 mouseupイベントはDOMツリーの一番上位である<BODY>要素にバインドする必要があります。

デモ

マウスポインタが黄色いDIV領域内で動いている間、常時座標を表示します。 このケースではiframeのwindowが相対位置の基準となります。

<!DOCTYPE html>
<html>
<head>
<style>
div { width:150px; height:170px; margin: 10px 50px 10px 10px;
      background:yellow; border:2px groove; float:right; }
p { margin:0; margin-left:10px; color:red; width:240px;
    height:120px; padding-top:70px;
    float:left; font-size:14px; }
span { display:block; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<p>
<span>黄色いDIV領域内でマウスポインタを動かしてみてください。</span>
<span>&nbsp;</span>
</p>
<div></div>
<script>
$("div").mousemove(function(e){
  var pageCoords = "( " + e.pageX + ", " + e.pageY + " )";
  var clientCoords = "( " + e.clientX + ", " + e.clientY + " )";
  $("span:first").text("( e.pageX, e.pageY ) : " + pageCoords);
  $("span:last").text("( e.clientX, e.clientY ) : " + clientCoords);
});
</script>
</body>
</html>

 Back to top

© 2010 - 2017 STUDIO KINGDOM