简介
因为实际开发中,很少用到event
对象的这几个值,每当写的时候又记不清,然后就要浪费时间去查找准确的资料,很是不爽,所以就做个记录~话不多说,直接上图(ps:图是网上找的,如果侵权,可立马删除):
针对offsetX, clientX, pageX, screenX
,图上已经标的很明白了,就不做讲解了~
event.x
event.x
代表点击的点距离可视区左边框的距离,而它在不同浏览器处理结果是不一样的,首先看以下代码
<body>
<div>
外
<div id="content" style="margin-top:50px;padding:15px;height:20px">
内
</div>
</div>
</body>
这种情况,event.x
在谷歌和IE结果是一样的,但是如果在外层div
加上定位
<body>
<div style="position:relative">
外
<div id="content" style="margin-top:50px;padding:15px;height:20px">
内
</div>
</div>
</body>
这时候,谷歌还是不变的,但是IE就不同了,它的event.x
返回的是点击位置到外层div
的距离,如下图所示:
具体原因和处理方案请看我的这篇博客
event.layerX
layerX/Y获取到的是触专发点相对被触发dom左上角的距离,数值与offsetX/Y相同,这个变量就是firefox用来替代offsetX/Y的,基准点为边框左上角,但是有个条件就是,被触发的dom需要设置为position:relative
或者position:absolute
,否则会返回相对html文档区域左上角的距离
总结
考虑到兼容性,layerX,x
不建议使用,layerX
可以用offsetX
代替,x
可以用clientX
代替