在Javascript中触发mousemove如何工作?

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

这是这样的:

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

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

我并不是完全不满意这样做(因为要让它为所有数百个像素做点什么都是非常详尽的),但我想知道它是如何工作的。

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

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


“小鼠只能每秒n次向操作系统报告自己的位置,我认为n通常小于100”


你可能想看看这个,因为这可能依赖于浏览器,

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

如何设置mousemove更新速度?


我认为它是同步的。 对于您移动鼠标的每个像素都不会触发它,这意味着事件不会排队。

假如你有一些这样的代码。

$('#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/

链接地址: http://www.djcxy.com/p/6915.html

上一篇: How does the triggering of mousemove work in Javascript?

下一篇: html