博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
layerX/layerY 和 offsetX/layerY
阅读量:5907 次
发布时间:2019-06-19

本文共 1053 字,大约阅读时间需要 3 分钟。

  hot3.png

鼠标相对于引起事件的对象的 X/Y 坐标:

offsetX/offsetY:IE 特有,以引起事件的对象为参考点,从内容区域的左上角计算,如果有 border 可能出现负值。

layerX/layerY: Firefox 特有,以页面 body 为参考点,如果引起事件的对象设置了 position 定位,那么和 IE 一样也以引起事件的对象为参考点,从触发元素盒子模型的 border 的左上角计算。

也就是当触发元素设置了 position 定位后,layerX/layerY 和 offsetX/offsetY 几乎相等,唯一不同就是 Firefox 以 border 为参考点, IE 以内容为参考点

可以拿下面的代码分别在 IE 和 Firefox 下测试一下。

window.onload = function() {    var oDiv = document.getElementById("oDiv");    oDiv.onclick = function(evt) {        evt = evt || fixEvent(window.event);        alert("layerX == " + evt.layerX + "\nlayerY == " + evt.layerY);    }};function fixEvent(evt) { // 给 IE 浏览器事件对象添加 layerX 和 layerY 属性,这样后面就可以用相同的名字调用了    evt.layerX = evt.offsetX;    evt.layerY = evt.offsetY;    return evt;}
#oDiv {    width: 200px;    height: 200px;    background: blue;    border: 5px solid red;    margin: 100px;    position: relative;  /*设置了 postion 定位,layerX 和 offsetX 几乎相等,就是参考点不同。如果不设置,firefox 将参考 body,而 IE 还是参考该 div。*/};

转载于:https://my.oschina.net/banbo/blog/342356

你可能感兴趣的文章
烂泥:rsync与inotify集成实现数据实时同步更新
查看>>
call & apply
查看>>
学习英语哦
查看>>
第六届蓝桥杯java b组第四题
查看>>
通过TortoiseGIT怎么把本地项目上传到GitHub
查看>>
Python 1 Day
查看>>
Python基础学习笔记(十:二进制位运算)
查看>>
C语言中字符串结束符
查看>>
技术工作者上升到思想,哲学层面也许更好
查看>>
LCD12864使用总结
查看>>
wireshark简明教程
查看>>
EditPlus配置Java编译器
查看>>
app已损坏,打不开。你应该将它移到废纸篓
查看>>
Switchover and Failover说明
查看>>
linux 环境RPM 安装MYSQL5.6
查看>>
Linux文件管理和编辑常用命令
查看>>
bluz-5.47 蓝牙
查看>>
C++ 读写文件
查看>>
海外旅游最常用的100句英语口语
查看>>
http协议进阶(五)连接管理
查看>>