JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别测试

JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别测试首先需要知道 clientX clientY screenX screenY offsetX offsetY nbsp 是鼠标事件对象下的几个属性 之前也一直对这些属性搞的稀里糊涂 看文档上说的也是不太理解 反正看完一头雾水 所以自己动手亲自测试了一下 说一下自己的理解 clientX clientY screenX screenY offsetX offsetY nbsp 这几个属性是 鼠标事件对象 下的属性

首先需要知道clientX,clientY,screenX,screenY,offsetX,offsetY 是鼠标事件对象下的几个属性.

之前也一直对这些属性搞的稀里糊涂,看文档上说的也是不太理解,反正看完一头雾水,所以自己动手亲自测试了一下;说一下自己的理解;clientX,clientY,screenX,screenY,offsetX,offsetY 这几个属性是“鼠标事件对象”下的属性,所以必然是“鼠标事件”发生时候才会有意义;

clientX:当鼠标事件发生时(不管是onclick,还是omousemove,onmouseover等),鼠标相对于浏览器(这里说的是浏览器的有效区域)x轴的位置; clientY:当鼠标事件发生时,鼠标相对于浏览器(这里说的是浏览器的有效区域)y轴的位置; screenX:当鼠标事件发生时,鼠标相对于显示器屏幕x轴的位置; screenY:当鼠标事件发生时,鼠标相对于显示器屏幕y轴的位置; offsetX:当鼠标事件发生时,鼠标相对于事件源x轴的位置 offsetY:当鼠标事件发生时,鼠标相对于事件源y轴的位置

下面我将结合我的测试代码和结果对上面的话进行解释

这是我写的测试例子的html代码

   
   

添加一点样式

接下来是js部分的代码

screenX:”+ e.screenX+”,screenY:” + e.screenY; } /* function test(ev) { var e = ev || window.event; var div1 = document.getElementById(‘div1’); div1.innerHTML = “offsetX:”+ e.offsetX +”,offsetY : “+ e.offsetY; }*/

这里我需要解释一下我上面说的“浏览器有效区域”这句话,下图中黑色边框区域就是浏览器的有效区域,而整个图片显示的区域就是 “显示器屏幕区域”

 JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别测试

下图可以看到当鼠标移动事件onmousemove发生的时候,在id为div的里面显示clientX,clientY,screenX,screenY,的值;

JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别测试


当我的鼠标放到浏览器有效区域的 0 ,0 处,clientX为0,clientY为0;

而screenX为0,screenY为85,因为鼠标在“浏览器有效区域”里的x坐标就是0,y坐标也是0,而鼠标在“显示器屏幕区域”的x坐标是0,y坐标是85px

 JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别测试

当我把鼠标移到div的右上角的时候,clientX为200,clientY为0;

screenX为200,screenY为85,由此可知道

clientX是鼠标相对以浏览器有效区域的的X轴坐标,

clientY是鼠标相对以浏览器有效区域的的Y轴坐标,

上图中我的鼠标在浏览器有效区域里 的x坐标是200px,y坐标是0;screenXscreenY则是相对以整个显示屏幕区域而言的。

上图中 相对于“整个显示屏幕区域而言” 鼠标的x坐标是200px,y坐标是85px,所以screenX和screenY正是获取这两个值,所以screenX是200px,screenY是85px

 JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别测试

当我的鼠标移动到div的右下角的时候,screeX是200px,screenY是185px,因为div本身的宽度我定义的时200px,高度100px;

 

接下来说一说offsetX和offsetY属性

offsetX :当鼠标事件发生时,鼠标相对于事件源x轴的位置

offsetY:当鼠标事件发生时,鼠标相对于事件源y轴的位置

 JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别测试

当我们点击test按钮的时候触发onclick事件,这里test这个按钮就是事件源,所以通过offsetX和offsetY获取的坐标值就是相对于 test按钮这个事件源的;

Test按钮自身的宽100px高50px;为了容易理解,我特意给按钮添加个margin:50px让大家看得效果明显一些;

 JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别测试

 

第一次鼠标是在接近test按钮的左上角点击

JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别测试


JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别测试


相信看到这里应该能明白offsetX和offsetY是获取的什么值了吧,获取的就是鼠标相对test这个按钮的x坐标和y坐标












版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199095.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午1:52
下一篇 2026年3月26日 下午1:52


相关推荐

  • python和pycharm之间的关系_浅析python,PyCharm,Anaconda三者之间的关系

    python和pycharm之间的关系_浅析python,PyCharm,Anaconda三者之间的关系浅析 python PyCharm Anaconda 三者之间的关系

    2026年3月27日
    3
  • 培训java机构排行榜_北京java培训班哪家好

    培训java机构排行榜_北京java培训班哪家好要说国内的就业市场中,薪资高待遇好的当属Java软件开发岗位了,因Java软件开发的职业发展稳定获得了不少从业者的追捧。对于想要学习Java的同学来说,培训就成了进入这个行业的敲门砖,很多零基础不太懂这个行业的同学,想要找一家比较好的培训机构,都会在网络上搜索一些像“北京Java培训机构排名”这样的词,能够在其中得到一些参考,下面是通过行业口碑,Java就业率,诚信度,课程体系,Java师资,教学质量,授课方式等多方面得出的北京Java培训机构排名,参考意义很强。就算我们有了排名上的参考,也需.

    2022年10月3日
    6
  • Redis在SpringBoot的基本使用

    Redis在SpringBoot的基本使用一、配置1.添加依赖在springboot启动器中直接添加依赖,或者创建后添加Maven依赖:<!–spring-boot-starter-data-redis–>&l

    2022年8月16日
    14
  • Java工程师就业前景及薪资水平

    Java工程师就业前景及薪资水平Java工程师就业前景及薪资水平在互联网+的影响下,这几年,中国的互联网行业进入了高速发展的阶段,IT行业成为热门,备受追捧和关注。在全球云计算和移动互联网的产业环境下,想参加Java培训成为Java工程师也是很多小伙伴的追求,那么Java工程师就业前景如何?薪资水平高不高呢?下面就来具体了解一下吧。一、Java工程师就业前景1、Android开发:Android是全球最大的智能手机操作系统,根据StrategyAnalytics研究报告显示,全球智能手机出货量在2016年第三季度达到3.75亿台

    2022年7月9日
    20
  • usg6000_华为防火墙usg6000web登陆

    usg6000_华为防火墙usg6000web登陆USG6000密码恢复1.如果某个管理员遗忘了密码,可以使用其它高权限的管理员账号登录设备,然后修改密码。例如,管理员admin1的密码遗忘,此时可以由管理员admin登录设备,然后修改admin1

    2022年8月6日
    38
  • EasyClaw:OpenClaw国产平替,零配置一键拥有24小时AI智能体

    EasyClaw:OpenClaw国产平替,零配置一键拥有24小时AI智能体

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号