9

すべてのマウス移動でマウスのx位置とy位置を出力するオブジェクトがあります。

これは次のようなものです。

$('#canvas').mousemove(function(e){
    $('#output').prepend(e.pageX + ',' + e.pageY);
});

オブジェクト上を非常に速く移動すると、いくつかの位置しか出力されないことに気づきました。

私はそれがそれをすることに完全に不満ではありません(あなたが交差した何百ものピクセルすべてに対して何かをすることは非常に徹底的であるため)が、これがどのように機能するのか疑問に思います。

mousemoveイベントは、1秒あたりのトリガーの量に制限されていますか?

(ところで:これはUbuntu LinuxのChromiumでテストされました)

4

3 に答える 3

1

これはブラウザに依存する可能性があるため、これを確認することをお勧めします。

http://javascript.info/tutorial/mouse-events#mousemove-and-mouseover-frequencyですが、この質問を見ると、より良い応答を得る方法についての提案があります。

mousemoveの更新速度を設定するにはどうすればよいですか?

于 2011-05-11T19:04:56.830 に答える
0

同期だと思います。マウスを動かしたすべてのピクセルでトリガーされるわけではありません。つまり、イベントはキューに入れられません。

このようなコードがある場合は、言ってください。

$('#canvas').mousemove(function(e){
//Some code which takes seconds to execute 
//All subsequent events won't be dispatched while this event handler is executing. 
});

マウス移動イベントハンドラーの実行中にマウスを移動するとします。ハンドラーはmousemoveトリガーされません。

実行に数秒かかるハンドラーの例を次に示します。-> http://jsfiddle.net/78Hf3/1/

そして、ほんの少しの時間しかかからないもの-> http://jsfiddle.net/78Hf3/2/

于 2011-05-11T18:51:33.447 に答える