Javascript 中的client , page , screen

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, 是根据距页面顶端来定位。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,801评论 1 92
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,933评论 18 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,241评论 4 61
  • 为什么多年的朋友慢慢不联系了?为什么同学聚会,从天南海北到一起却没什么话聊?为什么爸妈最爱的电视节目你根本看不下去...
    银杏树下捡书签阅读 670评论 1 0
  • 云朵做卷发,彩虹做夹子,蓝天中取出一块布做衣裳,可最后雨水打湿了一切……
    泽野心阅读 220评论 0 0