pointermove与 mousemove的比较(除去额外功能外)

前端开发 2026-07-09

MDN says 指出 pointermove 事件“与 mousemove 事件非常相似,但具有更多特性”。

这与“完全相同[…]但有更多特性”的说法不同,意味着 pointermovemousemove 不仅在额外特性上存在差异,也在其他方面有所不同。还有哪些差异?

解决方案

  • mousemove 在触摸屏上轻触时触发。pointermove 不会。

  • pointermove 在触摸屏滑动开始阶段会触发几次。mousemove 不会。

  • mousemove 提供整数CSS像素坐标。

pointermove 提供以设备像素精度表示的非整数CSS像素坐标。因此,通常来说,它的精度更高。

在Chromium和 Firefox中经过测试。

如果你的 devicePixelRatio1,请使用页面缩放来改变它,并查看不同精度等级之间的差异。

onmousemove = e => { div1.textContent = e.clientX + ', ' + e.clientY; };
onpointermove = e => { div2.textContent = e.clientX + ', ' + e.clientY; };
<div id="div1"></div>
<div id="div2"></div>
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章