在此fiddle demo中,按住并移动鼠标将根据鼠标的位置绘制点。 draw方法是监听mousemove
回调,但它会绘制离散点,表明mousemove
事件不会连续触发。
更重要的是,我收集了event.timeStamp
并登录控制台。我发现相邻事件之间的偏移接近16.7ms。那么每帧mousemove
事件会发生一次吗?
答案 0 :(得分:3)
mousemove
事件频率是特定于实现的,并且未由任何规范定义。
当指针设备在元素上移动时,用户代理必须调度此事件。移动指针设备时事件的频率是特定于实现,设备和平台的,但是应该针对持续的指针设备移动触发多个连续的mousemove事件,而不是针对每个鼠标移动实例的单个事件。鼓励实施确定最佳频率以平衡响应性和性能。
某些平台上的某些浏览器完全有可能将其限制为每帧一次。不保证任何可能会这样做的浏览器会继续这样做。
如果要绘制连续线,则需要在两点之间插值数据。