您的位置:首页 > 其它

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

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

screen是获取鼠标相对于屏幕原点的位置
client是获取鼠标相对于页面可视区域原点的位置,因为是相对于可视区域的所有与滚动条无关。
page是获取鼠标相对于整个页面的原点的位置,这个就和滚动条位置有关了。
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)

具体的区别相信大家都能体会出来了吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息