e.clientX,e.clientY, e.pageX , e.pageY , e.offsetX , e.offsetY , e.screenX , e.screenY
欢迎访问我的博客,祝码农同胞们早日走上人生巅峰,迎娶白富美~~~
声明:参考文档你是如何理解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()
(window).scrollTop():浏览器滚动条滚动的垂直距离