MouseEvent:页面放大时的高精度鼠标位置?

Tax*_*osk 6 javascript mouseevent

如果我尽可能地放大页面并在页面上非常缓慢地移动鼠标(一次一个像素),则生成的mousemove事件的clientX/clientY值没有小数部分,因此会失去精度。(通常,几个mousemove具有完全相同坐标值的事件会连续触发,因为鼠标确实移动了,但移动的距离小于一个完整的 CSS 像素。)这对我在 Windows 10 的所有浏览器上都是正确的 - - Chrome、Firefox、Opera 和 Edge。

MDN 的“浏览器兼容性”部分指出在 Chrome 56 中clientX已从 更改longdouble。因此,至少在 Chrome 的情况下,此更改最近似乎已恢复。

screenX/screenY坐标值似乎是在设备的像素,而不是CSS像素,因此不变的缩放。当我尝试时,Firefox、Chrome、Edge 和 Opera 都是如此。这看起来很有希望,但如果不知道设备像素中屏幕矩形的边缘,它对我来说也可能没有多大用处。(看起来未来的草案规范也希望screenX/Y无论如何都在 CSS 像素中。)

那么:有没有什么方法可以让我在不损失高缩放级别精度的情况下获得鼠标位置?