mousemove 事件是否每帧触发一次?

2024-04-10

In this 小提琴演示 https://jsfiddle.net/JoeZheng/uy9poL1j/,按下并移动鼠标会根据鼠标的位置绘制点。绘制方法是听mousemove回调,但它绘制了离散点,表明mousemove事件不会连续触发。

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


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

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

-- UI 事件,W3C 工作草案,2016 年 8 月 4 日 https://www.w3.org/TR/uievents/#event-type-mousemove

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mousemove 事件是否每帧触发一次? 的相关文章

随机推荐