mousemove事件每帧触发一次吗?

时间:2017-07-04 06:11:43

标签: javascript jquery google-chrome javascript-events mouseevent

在此fiddle demo中,按住并移动鼠标将根据鼠标的位置绘制点。 draw方法是监听mousemove回调,但它会绘制离散点,表明mousemove事件不会连续触发。

更重要的是,我收集了event.timeStamp并登录控制台。我发现相邻事件之间的偏移接近16.7ms。那么每帧mousemove事件会发生一次吗?

1 个答案:

答案 0 :(得分:3)

mousemove事件频率是特定于实现的,并且未由任何规范定义。

  

当指针设备在元素上移动时,用户代理必须调度此事件。移动指针设备时事件的频率是特定于实现,设备和平台的,但是应该针对持续的指针设备移动触发多个连续的mousemove事件,而不是针对每个鼠标移动实例的单个事件。鼓励实施确定最佳频率以平衡响应性和性能。

     

- UI Events, W3C Working Draft, 04 August 2016

某些平台上的某些浏览器完全有可能将其限制为每帧一次。不保证任何可能会这样做的浏览器会继续这样做。

如果要绘制连续线,则需要在两点之间插值数据。

相关问题