各浏览器的鼠标位置测试

参考文章: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文档标准说明,对这个我比较模糊,最好还是 不用吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值