JavaScriptWeb前端之路让前端飞

Javascript 中的client , page , scr

2017-10-09  本文已影响42人  sky丶星如雨

screenXY:screenX和screenY的参照点是用户屏幕左上角,screenX是鼠标位置相对于用户屏幕(左侧)水平偏移量,而screenY则是鼠标相对于屏幕(顶部)垂直方向的偏移量。
解释:就是根据距离显示器的位置来定位,与浏览器无关。

clientXY:clientX和clientY的参照点是浏览器内容区域的左上角,clientX是相对于用户浏览器(左侧)的水平偏移量,而clientY则是相对于浏览器内容区(顶部)垂直放心的偏移量。
解释:根据浏览器的窗口来定位,与page容易混淆,稍后对比解释。

pageXY:pageX和pageY的参照点是这个页面的左上角,和浏览器宽高、滚动条等无关,pageX是相对于整个页面(左侧)水平偏移量,而pageY则是相对于整个页面(顶部)垂直放心的偏移量。
解释:同样是根据浏览器窗口来定位。

client 与 page 对比:
client 位置就是根据当前浏览器窗口来定位,无论是否有横向或纵向的滚动条。
page 位置是根据整个浏览器页面来定位。
举例说明:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        body {
            height: 2000px;
        }
    </style>
</head>
<body>
<script>

    document.onclick = function (e) {
        var e = e || window.event;
        console.log("X" + e.clientX);
        console.log("Y" + e.clientY);
        console.log("X" + e.pageX);
        console.log("Y" + e.pageY);
    }

</script>
</body>
</html>
没有滚动条时 页面高度滚动时

通过对比,我们可以很清楚的看到,当页面滚动时,client还是根据当前浏览器窗口定位,但page, 是根据距页面顶端来定位。

上一篇下一篇

猜你喜欢

热点阅读