详细区分offsetX,clientX,pageX,screenX,layerX和X的区别

简介: 详细区分DOM事件中鼠标指针的坐标问题前面博客中我们讲解到了DOM事件的event对象,里边包含了鼠标事件的指针坐标属性。比如event.offsetX,event.clientX,event.pageX,event.screenX等等。现在我们来解析一下这些坐标属性的区别。HTML代码: <div class="box"></div> <div class="box2"></div> 1 2CSS代码: .box{ width: 200px; height: 200px; backgro

详细区分DOM事件中鼠标指针的坐标问题




前面博客中我们讲解到了DOM事件的event对象,里边包含了鼠标事件的指针坐标属性。比如event.offsetX,event.clientX,event.pageX,event.screenX等等。现在我们来解析一下这些坐标属性的区别。


HTML代码:


<divclass="box"></div><divclass="box2"></div>

CSS代码:


.box{
        width: 200px;
        height: 200px;
        background: red;
        margin: 200px auto;
    }
    .box2{
        width: 10000px;
        height: 100px;
    }
    body{
        height: 10000px;
    }


JavaScript代码:



var oBox=document.getElementsByClassName("box")[0];
    oBox.onmousemove=function(ev){
        var ev=ev||window.event;
        console.log("clientX:"+ev.clientX,"clientY:"+ev.clientY);
        console.log("screenX:"+ev.screenX,"screenY:"+ev.screenY);
        console.log("offsetX:"+ev.offsetX,"offsetY:"+ev.offsetY);
        console.log("pageX:"+ev.pageX,"pageY:"+ev.pageY);
    }
    // clientX clientY  相对于可视区域的左上角
    // screenX screenY  相对于显示器屏幕左上角
    // offsetX offsetY  相对于触发事件的元素的左上角
    // pageX PageY   相对于整个网页的左上角   clientX+滚动条


图文解析event.offsetX,event.clientX,event.pageX,event.screenX的区别:

图片.png

在这里插入图片描述


图解event.layerX,event.layerY属性:

图片.png

在这里插入图片描述


图解event.x,event.y属性:

图片.png

在这里插入图片描述


视频讲解链接:
https://www.bilibili.com/video/BV1Cg4y1i7sr/



相关文章
|
JavaScript
jq样式、元素操作,效果,筛选方法与转换,事件对象
jq样式、元素操作,效果,筛选方法与转换,事件对象
|
2月前
|
API
简述a标签超链接target属性的取值和作用
简述a标签超链接target属性的取值和作用
|
5月前
|
UED
简述a标签target属性的取值和作用
简述a标签target属性的取值和作用
46 0
|
6月前
|
JavaScript 前端开发
【专栏】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表
【4月更文挑战第29天】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表。它接受两个参数:上下文对象和参数数组。理解`apply`有助于深入JS运行机制。文章分三部分探讨其原理:基本概念和用法、工作原理详解、实际应用与注意事项。在应用中要注意性能、参数类型和兼容性问题。`apply`可用于动态改变上下文、传递参数数组,甚至模拟其他语言的调用方式。通过深入理解`apply`,能提升代码质量和效率。
36 3
|
JavaScript 前端开发
计算属性和监视属性的区别
计算属性和监视属性的区别
|
6月前
|
JavaScript 前端开发 Go
<script> 标签的 defer 和 asnyc 属性的作用以及二者的区别
<script> 标签的 defer 和 asnyc 属性的作用以及二者的区别
69 0
箭头函数与普通 function 的区别
箭头函数与普通 function 的区别
81 0
|
搜索推荐 前端开发 JavaScript
meta标签有哪些属性和属性值?li设为行内块时有间隙怎么办?call、apply和bind的作用和区别?
`meta`标签可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。`meta`标签位于文档的头部,不包含任何内容。`meta`标签的属性定义了与文档相关联的名称/值对。
|
C++
怎么区分 const 与 * 的组合
怎么区分 const 与 * 的组合
54 0
|
安全 JavaScript API
【笔记】用 window.postMessage 进行窗口之间的隐式信息传递
用 window.postMessage 进行窗口之间的隐式信息传递
337 0