详细区分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/



相关文章
|
3月前
transition复合属性同时设置元素的四个过渡属性
【10月更文挑战第6天】transition复合属性同时设置元素的四个过渡属性
245 8
关于监听window.top的滑动,Iframe嵌套
关于监听window.top的滑动,Iframe嵌套
|
3月前
|
JavaScript
箭头函数与普通函数(function)的区别
箭头函数是ES6引入的新语法,相比传统函数表达式更简洁,且没有自己的this、arguments、super或new.target绑定,而是继承自外层作用域。这使得箭头函数在处理回调和闭包时更加灵活方便。
|
6月前
|
前端开发 JavaScript C++
CSS 【详解】样式选择器(含ID、类、标签、通配、属性、伪类、伪元素、Content属性、子代、后代、兄弟、相邻兄弟、交集、并集等选择器)
CSS 【详解】样式选择器(含ID、类、标签、通配、属性、伪类、伪元素、Content属性、子代、后代、兄弟、相邻兄弟、交集、并集等选择器)
577 0
|
7月前
|
UED
简述a标签target属性的取值和作用
简述a标签target属性的取值和作用
63 0
|
8月前
|
JavaScript 前端开发 Go
<script> 标签的 defer 和 asnyc 属性的作用以及二者的区别
<script> 标签的 defer 和 asnyc 属性的作用以及二者的区别
84 0
|
JavaScript
clientX和clientY 事件属性的使用
clientX和clientY 事件属性的使用
105 0
箭头函数与普通 function 的区别
箭头函数与普通 function 的区别
96 0
|
搜索推荐 前端开发 JavaScript
meta标签有哪些属性和属性值?li设为行内块时有间隙怎么办?call、apply和bind的作用和区别?
`meta`标签可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。`meta`标签位于文档的头部,不包含任何内容。`meta`标签的属性定义了与文档相关联的名称/值对。
|
C++
怎么区分 const 与 * 的组合
怎么区分 const 与 * 的组合
57 0