screenY、pageY、clientY、offsetY的区别 Better

鼠标事件 (MouseEvent)

  • offsetX、offsetY: 只读 鼠标指针相对于目标节点内边位置的X坐标/ Y坐标
    鼠标相对于事件源元素(srcElement)的X,Y坐标

  • clientX、clientY: 只读 鼠标指针在点击元素(DOM)中的X坐标/ Y坐标
    鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条。

  • pageX、pageY: 只读 鼠标指针相对于整个文档的X坐标/ Y坐标
    类似于event.clientX、event.clientY,但它们使用的是文档坐标而非窗口坐标。这2个属性不是标准属性,但得到了广泛支持。IE事件中没 有这2个属性

  • screenX、screenY: 只读 鼠标指针相对于全局(屏幕)的X坐标/ Y坐标
    鼠标相对于用户显示器屏幕左上角的X,Y坐标。

Touch 事件

Touch.screenX:只读 触点相对于屏幕左边缘的X坐标。
Touch.screenY:只读 触点相对于屏幕上边缘的Y坐标。

Touch.clientX:只读 触点相对于可见视区(visual viewport)左边缘的X坐标。不包括任何滚动偏移。
Touch.clientY:只读 触点相对于可见视区(visual viewport)上边缘的Y坐标。不包括任何滚动偏移。

Touch.pageX:只读 触点相对于HTML文档左边缘的X坐标。当存在水平滚动的偏移时, 这个值包含了水平滚动的偏移。
Touch.pageY:只读 触点相对于HTML文档上边缘的Y坐标。当存在垂直滚动的偏移时, 这个值包含了垂直滚动的偏移。

原文地址:https://www.cnblogs.com/huangtq/p/15560960.html