如何在Javascript中触发mousemove?

时间:2011-05-11 18:16:16

标签: javascript jquery mouseevent mousemove

我有一个对象可以在每个鼠标移动时打印鼠标的x和y位置。

这是这样的:

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

我注意到当你快速移动物体时,它只打印出几个位置。

我并不十分不满意这样做(因为让它为你所穿过的所有数百个像素做一些事情会非常详尽)但是我想知道它是如何工作的。

mousemove事件是否限制为每秒一定量的触发器或什么?

(顺便说一句:这是在Ubuntu Linux中的Chromium上测试的)

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

您可能需要查看此内容,因为这可能取决于浏览器,

http://javascript.info/tutorial/mouse-events#mousemove-and-mouseover-frequency但是,如果你看一下这个问题,就会有一个关于如何获得更好回应的建议。

How to set mousemove update speed?

答案 2 :(得分: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. 
});

假设您在鼠标移动事件处理程序执行时移动鼠标。 <{1}}处理程序不会被触发。

这是一个处理程序的例子,需要几秒钟才能执行。 - &GT; http://jsfiddle.net/78Hf3/1/

只需要几分钟的时间 - &gt; http://jsfiddle.net/78Hf3/2/