如果我尽可能地放大页面并在页面上非常缓慢地移动鼠标(一次一个像素),则会生成mousemove
个事件' clientX
/ clientY
值没有小数部分,因此会失去精确度。 (通常,具有完全相同坐标值的几个mousemove
事件会连续触发,因为鼠标确实会移动,但移动的CSS像素不会超过一个。)在所有浏览器中我都是如此适用于Windows 10 - Chrome,Firefox,Opera和Edge。
MDN的"Browser Compatibility" section表示在Chrome 56中clientX
已从long
更改为double
。因此,此更改似乎最近已恢复,知道Chrome的情况至少。
screenX
/ screenY
坐标值似乎是设备像素,而不是CSS像素,因此对缩放不变。当我尝试时,Firefox,Chrome,Edge和Opera都是如此。这似乎很有希望,但不知道设备像素中的屏幕矩形的边缘也可能对我没有多大用处。 (看起来未来的草案规范也希望screenX
/ Y
无论如何都是CSS像素。)
所以:有没有什么方法我没有看到鼠标位置在高缩放级别下没有精度损失?