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

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

1 前言

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

2 e 是什么

这里先说一下 e 是什么

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

2.1 var event = e || event

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

下面借用道友的一张图来说明一下针对于不同浏览器的兼容性问题
各浏览器获取时间对象列表
很显然,在Firefox浏览器中仅支持event,而且Forefox支持对象参数的传入,但是IE6/7/8是不支持对象参数的传入的,所以此种方法保证对所有浏览器的兼容

3 e.clientX , e.clientY

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

4 e.screenX , e.screenY

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

5 e.pageX , e.pageY

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

6 e.offsetX , e.offsetY

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

7 相关的一些写法

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

8 参考文章

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值