event.pageY
获取相对于整个文档高度的鼠标位置(document.documentElement.offsetHeight
我假设)。
但是如何获得相对于当前视口的鼠标位置,即document.documentElement.clientHeight
?
例如,如果浏览器窗口大小为 720 像素高度,我向下滚动 3 页并将鼠标保持在窗口中间,位置应为“360”,而不是 1800(720 x 3 - 720 / 2)。
event.pageY
获取相对于整个文档高度的鼠标位置(document.documentElement.offsetHeight
我假设)。
但是如何获得相对于当前视口的鼠标位置,即document.documentElement.clientHeight
?
例如,如果浏览器窗口大小为 720 像素高度,我向下滚动 3 页并将鼠标保持在窗口中间,位置应为“360”,而不是 1800(720 x 3 - 720 / 2)。
尝试使用event.clientY
它应该始终返回正确的值,而不管滚动
用于event.clientY
获取鼠标相对于浏览器视口的位置(兼容性表)。
我处于类似情况,我需要光标在视口中的坐标(因为我的页面是可滚动的)。
我在这里尝试了其他答案,一旦滚动屏幕,它们似乎就不起作用(它们适用于不可滚动的页面)。
在阅读了https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent的一些文档页面后,
我发现在使用可滚动页面时,如果您需要当前视口的 X 和 Y 坐标(即即使滚动),最好改为使用
event.pageX
。
var pageX = MouseEvent.pageX;
https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageX