小议layerX/Y offsetX/Y 的区别 In Chrome

大家都知道在chrome中获取鼠标位置信息的途径有很多。有screenX/Y、clinetX/Y、pageX/Y、layerX/Y、offsetX/Y。这里面的区别网上的大神都有很多的阐述了,我就不详细探究了。总结如下:

  1. screen是获取鼠标相对于屏幕原点的位置
  2. client是获取鼠标相对于页面可视区域原点的位置,因为是相对于可视区域的所有与滚动条无关。
  3. page是获取鼠标相对于整个页面的原点的位置,这个就和滚动条位置有关了。
  4. layer和offset在chrome中都是获取鼠标相对于元素原点的位置,这里的原点是以border原点计算的。

那layer和offset在chrome中难道就没有区别了吗?

当然不会这样。

当我们使用transform进行2D变换时,这两者的区别就显现出来了。一个会受变换影响而另一个则不会。

例如,一个DIV宽高都是100px。

  • 我们将鼠标移动到这个矩形的中心,得到的数据为 layer(50,50) offset(50,50)。
  • 如果给这个DIV进行一次2D变换添加scale(0.5),即缩小50%,那么此时我们再将鼠标移动到这个矩形的中心我们得到的数据为 layer(25,25) offset(50,50)

具体的区别相信大家都能体会出来了吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值