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



相关文章
|
5月前
|
API
简述a标签超链接target属性的取值和作用
简述a标签超链接target属性的取值和作用
|
6月前
|
前端开发
如何消除li和ul之间的空隙、如何使div中的内容居中
这篇文章介绍了如何美化网页元素,包括设置登录页面的模糊背景效果,使用CSS的`opacity`属性;以及如何使`div`中的内容水平居中,通过设置`margin: auto;`。此外,还讲解了如何消除`li`和`ul`之间的空隙,通过将`ul`和`li`的`padding`和`margin`设置为0。
如何消除li和ul之间的空隙、如何使div中的内容居中
|
前端开发 JavaScript SEO
b标签和strong标签的区别?css单行或多行溢出隐藏如何实现?浅谈this?
b标签只是文本加粗,而strong除了加粗还有强调的语义。
|
搜索推荐 前端开发 JavaScript
meta标签有哪些属性和属性值?li设为行内块时有间隙怎么办?call、apply和bind的作用和区别?
`meta`标签可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。`meta`标签位于文档的头部,不包含任何内容。`meta`标签的属性定义了与文档相关联的名称/值对。
|
搜索推荐 前端开发 JavaScript
title与h1的区别?position的值有哪些?如何理解原型?
1. title:可定义文档的标题,概括了网站信息,可以告诉搜索引擎或者用户这个网站的内容主题是什么。 2. h1:写在文章正文的标题部分,是展示给用户看的,更突出其视觉效果。
|
C++
怎么区分 const 与 * 的组合
怎么区分 const 与 * 的组合
59 0
|
安全 JavaScript API
【笔记】用 window.postMessage 进行窗口之间的隐式信息传递
用 window.postMessage 进行窗口之间的隐式信息传递
366 0
|
编译器
每日一题:var、let、const之间的区别你真的理解了吗?
每日一题:var、let、const之间的区别你真的理解了吗?
108 0
关于 QGraphicsScene场景中触发事件使用event->pos()获取坐标为0 的解决方法
关于 QGraphicsScene场景中触发事件使用event->pos()获取坐标为0 的解决方法
关于 QGraphicsScene场景中触发事件使用event->pos()获取坐标为0 的解决方法
|
Web App开发 前端开发 iOS开发
使用 tabindex 配合 focus-within 巧妙实现父选择器
使用 tabindex 配合 focus-within 巧妙实现父选择器
175 0