e.clientX,e.clientY, e.pageX , e.pageY , e.offsetX , e.offsetY , e.screenX , e.screenY

欢迎访问我的博客https://qqqww.com/,祝码农同胞们早日走上人生巅峰,迎娶白富美~~~

声明:参考文档你是如何理解var e=e||window.event的

刚才写博客《javascript实现简单拖曳功能》的时候,用到了e.clientX这一类坐标属性,就想到把这一类相似的属性都整理一下,他们分别为
e.clientX , e.clientY
e.pageX , e.pageY
e.offsetX , e.offsetY
e.screenX , e.screenY

e 是什么

这里先说一下 e 是什么

e 是给一个事件对象,可以在编写函数的时候,传入一个形参e,然后执行函数的时候传入一个实参,那么e这个时候就是这个作为实参的对象

var event = e || event

兼容性写法,这样写可能不太好理解,但是假如给他写成var event = event || window.event,或者写成var event = e ? event : window.event 想必就更好理解了

下面借用道友的一张图来说明一下针对于不同浏览器的兼容性问题

各浏览器获取时间对象列表

很显然,在Firefox浏览器中仅支持event,而且Forefox支持对象参数的传入,但是IE6/7/8是不支持对象参数的传入的,所以此种方法保证对所有浏览器的兼容

e.clientX , e.clientY

鼠标相对于浏览器窗口可视区域的X,Y坐标,可视区域不包括工具栏和滚动条,IE事件和标准事件支持

e.screenX , e.screenY

上面讲了e.clientX , e.clientY,再讲e.screenX , e.screenY感觉再合适不过了,因为是鼠标相对于屏幕的坐标,包括浏览器上面的工具栏和滚动条,二者差别就在这,IE事件和标准事件支持

e.pageX , e.pageY

相对于文档的定位,文档的左上角为(0,0),向右为正,向下为正,IE不支持

e.offsetX , e.offsetY

e.pageX , e.pageY一模一样的功能,但是这两个属性只有IE支持

相关的一些写法

在文档中的位置Y坐标等于在可视区域的Y坐标加上滚动条垂直方向卷去的距> 离:
e.pageY = e.pageY || e.clientY + (window).scrollTop():浏览器滚动条滚动的垂直距离

你可能感兴趣的:(e.clientX,e.clientY, e.pageX , e.pageY , e.offsetX , e.offsetY , e.screenX , e.screenY)