zoukankan      html  css  js  c++  java
  • screenX clientX pageX的区别

    screenX:鼠标位置相对于用户屏幕水平偏移量,而screenY也就是垂直方向的,此时的参照点也就是原点是屏幕的左上角。

    clientX:跟screenX相比就是将参照点改成了浏览器内容区域的左上角,该参照点会随之滚动条的移动而移动。

    pageX:参照点也是浏览器内容区域的左上角,但它不会随着滚动条而变动

    如图(红点就是鼠标当前位置)

    参考代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <style>
            body {
                margin: 0;
                padding: 0;
            }
            .div {
                text-align: center;
                font-size: 24px;
                height: 300px;
                width: 1300px;
                line-height: 300px;
                color: yellow;
            }
    
            #d1 {
                background-color: red;
            }
    
            #d2 {
                background-color: green;
    
            }
    
            #d3 {
                background-color: blue;
            }
    
            #d4 {
                position: absolute;
                background-color: yellow;
                height: 150px;
                width: 120px;
                top: 0;
            }
        </style>
        <script type="text/javascript">
    
            $(function () {
    
                window.onscroll = function () {
                    $("#d4").css("top", getScrollTop());
                };
    
                document.onmousemove = function (e) {
                    if (e == null) {
                        e = window.event;
                    }
                    var html = "screenX:" + e.screenX + "<br/>";
                    html += "screenY:" + e.screenY + "<br/><br/>";
                    html += "clientX:" + e.clientX + "<br/>";
                    html += "clientY:" + e.clientY + "<br/><br/>";
                    if (e.pageX == null) {
                        html += "pageX:" + e.x + "<br/>";
                        html += "pageY:" + e.y + "<br/>";
                    } else {
                        html += "pageX:" + e.pageX + "<br/>";
                        html += "pageY:" + e.pageY + "<br/>";
                    }
    
                    $("#d4").html(html);
                };
            });
    
            function getScrollTop() {
                var top = (document.documentElement && document.documentElement.scrollTop) ||
                  document.body.scrollTop;
                return top;
            }
        </script>
    </head>
    <body>
        <div id="d1" class="div">div1 height:300px 1300px</div>
        <div id="d2" class="div">div2 height:300px 1300px</div>
        <div id="d3" class="div">div3 height:300px 1300px</div>
        <div id="d4"></div>
    </body>
    </html>

    文章摘自:http://www.cnblogs.com/yehuabin/archive/2013/03/07/2946004.html

    pageX/pageY:
    鼠标相对于整个页面的X/Y坐标。
    注意,整个页面的意思就是你整个网页的全部,比如说网页很宽很长,宽2000px,高3000px,那pageX,pageY的最大值就是它们了。
    特别说明:IE不支持!
    clientX/clientY:
    事件发生时鼠标在浏览器内容区域的X/Y坐标(不包含滚动条)。
    浏览器内容区域即浏览器窗口中用来显示网页的可视区域,注意这个可视,也就是说需要拖动滚动条才能看到的区域不算。
    当你将浏览器窗口缩小时,clientX/clientY的最大值也会缩小,但始终,它们的最大值不会超过你浏览器可视区域。
    特别说明:IE下此属性不规范,它们的最小值不是0而是2,也就是说IE下的clientX/clientY比火狐下始终大2px。
    screenX/screenY
    鼠标在屏幕上的坐标。screenX,screenY的最大值不会超过屏幕分辨率。
    offsetX/offsetY:
    得出的结果跟pageX/pageY一样,既然如此,它有什么存在价值?因为:
    特别说明:只有IE支持!相当于IE下的pageX,pageY。
    e.clientX + document.documentElement.scrollLeft - document.documentElement.clientLeft = e.pageX
    e.clientY + document.documentElement.scrollTop  - document.documentElement.clientTop = e.pageY

    文章摘自:http://blog.csdn.net/ajaxuser/article/details/7549661

     
  • 相关阅读:
    Java/android下哈希sha1和MD5的实现
    ANDROID SOCKET 开发
    UML补充
    TCP协议中的三次握手和四次挥手(转)
    uva 658 最短路
    uva 11280 最短路
    uva 10246 最短路
    uva 11747,kruskal 并查集
    uva 544 dijkstra
    uva 1395 瓶颈树
  • 原文地址:https://www.cnblogs.com/yuqingfamily/p/5940775.html
Copyright © 2011-2022 走看看