各浏览器的鼠标位置测试

来源:互联网 发布:linux查所有进程命令 编辑:程序博客网 时间:2024/05/29 18:45

参考文章:http://www.cnblogs.com/xesam/archive/2011/12/08/2280509.html
重点内容http://www.cnblogs.com/kongxianghai/p/4192032.html

测试属性:
e.pageX(jQuery)
e.layerX
e.offsetX(HTML DOM Event)
e.clientX(HTML DOM Event)
e.x(HTML DOM Event IE属性)
测试浏览器:
chrome53/IE11/FF49

图示:
这里写图片描述

测试代码如下:

<!DOCTYPE html><!--@author JinYingYing--><html>    <head>        <meta charset="UTF-8">        <title></title>        <style type="text/css">            * {                margin: 0;                padding: 0;            }            #view {                position: relative;                left: 25px;                top: 25px;                width: 400px;                height: 100px;                border: 100px solid #adff2f;                background: #ff8c00;            }            #view_2 {                position: absolute;                left: 75px;                top: 375px;                width: 300px;                height: 100px;                background: #008b8b;            }            #text{                position: absolute;                left: 700px;                top: 100px;                font-size: 20px;            }        </style>    </head>    <body>        <div id="fake" style=" position: absolute; left: 10px; top:10px; width: 3000px; height: 2000px; background: #d3d3d3; padding: 50px;">            <div id="view"></div>            <div id="view_2"></div>            <div id="text">                <p>灰色区域left:10px,top:10px,padding:50px</p>                <p>黄色区域width:400px height:100px top:25px,left:25px </p>                <p>浅绿色是黄色区域的边框:宽100px</p>                <p>深绿色width:300px height:100px left:75px top:375px</p>            </div>        </div>        <script type="text/javascript">            document.onclick = function(e) {                e = e || window.event;                console.log('e.pageX:', e.pageX);                console.log('e.layerX:', e.layerX);                console.log('e.offsetX:', e.offsetX);                console.log('e.clientX:', e.clientX);                console.log('e.x:', e.x);            }        </script>    </body></html>

测试结果如下:
chrome:
e.pageX——相对于文档左边缘的鼠标位置。
e.layerX——相对当前坐标系的border左上角开始的坐标
e.offsetX——发生事件的地点在事件源元素的坐标系统中的 x 坐标
e.clientX——相对可视区域的坐标
e.x——相对可视区域的坐标

IE:
e.pageX——相对整个页面的坐标
e.layerX——相对当前坐标系的border左上角开始的坐标
e.offsetX——发生事件的地点在事件源元素的坐标系统中的 x 坐标
e.clientX——相对可视区域的坐标
e.x——相对当前坐标系的border左上角开始

FF:
e.pageX——相对整个页面的坐标
e.layerX——相对当前坐标系的border左上角开始的坐标
e.offsetX——发生事件的地点在事件源元素的坐标系统中的 x 坐标
e.clientX——相对可视区域的坐标
e.x——undefined

总结:
1)、其中clientX是W3C标准的一个属性,所以都挺符合的;
2)、基本都已经可以支持offsetX,在Canvas绘图中使用这个属性非常方便;
3)、e.x是IE的属性,差距较大;
4)、layerX搜索时,没有找到W3C文档标准说明,对这个我比较模糊,最好还是 不用吧。

0 0