1.clientY
鼠标在页面可视区域(不包括工具栏和滚动条)的位置。如果有滚动条,以滚动到的位置的可视区的左上角为原点,随滚动条移动而变化。IE事件和标准事件都定义了这个属性。
2.offsetY
- IE特有的,鼠标相对于触发事件的元素的位置,以元素盒子模型的内容区域的左上角为原点,如果有border,可能出现负值。
- layerY FF特有,鼠标相对于当前坐标系的位置,如果触发元素没有设置绝对定位或相对定位,以页面为参考点,如果有将改变坐标系,从触发元素盒子模型的border区域的左上角为参考点。
以上两者的原点位置不同,一个为内容区域的左上角,一个为border区域的左上角。
3.screenY
鼠标在显示器(屏幕)中的位置,屏幕的左上角开始,所有浏览器都一致。
4.pageY
鼠标在页面上的位置,从页面左上角开始。位置以页面的左上角为参考点,不随滚动条的滑动而改变。但pageY为FF特有,IE不支持,IE下的解决方案:
pageY=clientY+scrollTop-clientTop
(这里用y方向讨论)
综上,只有clientY和screenY均支持IE和标准浏览器,其它的都有问题。
标准浏览器chrome和safari完全支持上述所有属性,其中offsetY和layerY都是以border为参考点。
网友评论