HTML 鼠标坐标和元素坐标
在这一篇文章中,将会介绍鼠标坐标、元素坐标以及鼠标在指定元素内的坐标。
1. 鼠标坐标
在触发鼠标相关事件时(如:click、mousemove),可以通过事件对象获取当前鼠标的坐标。
获取的坐标可分为2种:
1) MouseEvent.screenX、MouseEvent.screenY :基于屏幕的X、Y坐标;以屏幕的左上角为0,0起始点。
2) MouseEvent.clientX、MouseEvent.clientY :基于body的X、Y坐标;以当前body的左上角为0,0起始点,若body含有水平滚动条或垂直滚动条时,左上角还是0,0坐标点。
2. 元素的坐标
元素的getBoundingClientRect()方法可获取一个 ClientRect 对象,其描述了元素的方位和宽高等信息。
2.1 ClientRect对象属性
属性名称 | 属性说明 |
width | 元素的宽度 |
height | 元素的高度 |
left | 元素左上角距离当前可视body的宽度 |
top | 元素左上角距离当前可视body的高度 |
right | 元素右下角距离当前可视body的宽度;right = left + width |
bottom | 元素右下角距离当前可视body的高度;bottom = top + height |
2.2 图示
2.3 其他坐标
除了这些直接属性外,还可以结合其他元素获取更详细的坐标:
1) 元素左上角在整体body的水平坐标 = document.body.scrollLeft + element.getBoundingClientRect().left;
2) 元素左上角在整体body的垂直坐标 = document.body.scrollTop + element.getBoundingClientRect().top;
3. 鼠标在元素内的坐标
通过之前学到的获取鼠标坐标和元素坐标后,还可进一步获取鼠标在元素内的坐标。
以鼠标在元素内的x坐标为例,等于鼠标的 clientX 减去 元素的getBoundingClientRect()放的left,最后在加上元素的scrollLeft的值。
公式如下:
x = mouse.clientX - element.left + element.scrollLeft
y = mouse.clientY - element.top + element.scrollTop
示例
转载于:https://www.cnblogs.com/polk6/p/6624779.html
HTML 鼠标坐标和元素坐标相关推荐
- 网页元素坐标表示及坐标计算方法
一.页面元素坐标种类 根据DOM的鼠标事件(参见https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent),浏览器响应鼠标事件时,会上报四 ...
- vue 获取元素在浏览器的位置_JavaScript获取窗口位置和元素坐标(兼容版)
在一些复杂的页面中经常会用JavaScript处理一些DOM元素的动态效果,这种时候我们经常会用到一些元素位置和尺寸的计算,浏览器兼容性问题也是不可忽略的一部分,要想写出预想效果的JavaScript ...
- [607]appium根据屏幕大小滑动界面|通过坐标定位元素
文章目录 appium根据屏幕大小滑动界面 通过坐标定位元素 appium根据屏幕大小滑动界面 driver.get_window_size() 获取屏幕的宽.高: driver.swipe() 从坐 ...
- PYTHON鼠标记录器 一个简单的鼠标记录器 可以修改坐标和点击的时间
PYTHON鼠标记录器 一个简单的鼠标记录器 可以修改坐标和点击的时间. 差一个定时器,如果加上定时器,估计就是解放了守在电脑边的你. 定时器版本忘了放在哪里了.先分享这个给对编程爱好的朋友,虽然我在 ...
- 地图绘制边界。高德。PPMAP。 鼠标点击经纬度坐标 。地图图标点点击弹窗窗口。地图图标点点击事件。
边界: == 第一种:绘制边界. 通过绘制多边形的API来绘制边界. 高德API:多边形 Polygon. 矢量图形-覆盖物-教程-地图 JS API | 高德地图API 将关键的边界轮廓 经纬度坐标 ...
- 创建maven项目时,maven坐标的元素GroupID、ArtifactID、Version、Packaging等什么意思,如何写?
新手创建一个maven管理的项目时,会遇到不知道GroupID.ArtifactID怎么填写认识模糊的问题,做个简单说明: 1.GroupId(Group): 项目所属组织的唯一标识符,对应项目中ja ...
- 求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。
功能:求出N×M整型数组的最大元素及其所在的行坐标及 列坐标(如果最大元素不唯一,选择位置在最前面 的一个). 例如:输入的数组为: 1 2 3 4 15 6 12 18 9 10 11 2 求出的最 ...
- matplotlib 鼠标拖动坐标图像/鼠标滑轮放大缩小坐标图像
分享一下关于matplotlib 鼠标拖动坐标图像/鼠标滑轮放大缩小坐标图像的代码 先看效果: 1.鼠标左键拖动坐标图像 # 鼠标左键拖拽事件 self.lastx = 0 # 获取鼠标按下时的坐标X ...
- 使用小技巧教你用Selenium获取鼠标指向的元素
有一个同学在Gne的群里面咨询如何通过Selenium获取当前鼠标指向的元素,在我讲了方法以后,他过了两天又来问: 那么,我今天就来写一篇文章,具体说说应该怎么操作. 这个方法的核心,是借助JavaS ...
最新文章
- Python MySQL删除表
- python语音属于什么语音_python语音识别
- struts2入门之action获取表单提交数据
- 开启es6——搭建开发环境
- jmeter连接并使用mysql数据库_jmeter连接MySQL数据库,并执行sql
- 以Epson 1600k 打印机为例解决使用SC登录虚拟机不能使用问题
- hpm1216nfh驱动程序_hp1216nfh一体机驱动下载_hp1216nfh一体机驱动 v4.0官方版_魅蓝下载...
- 连八股文都不懂还指望在后端混下去么
- 利用免费的必应 Bing 自定义搜索打造站内全文搜索
- linux执行历史命令用哪个键,Linux中如何使用history命令即历史命令
- 【历史上的今天】4 月 13 日:Damn Small Linux 首次发布;谷歌关闭短网址服务;数学先驱出生
- 基于Java后台(Springboot框架)+前端小程序(MINA框架)+Mysql数据库的教室图书馆座位预约小程序系统设计与实现
- JAVA面试这一篇就够了
- 初一下册计算机教案,七年级下册信息技术教案
- 24V转150V/24V转200V/250V探测隔离高压电源模块
- 人工智能需要的数学基础
- iCloud是什么?iCloud怎么用?
- sql语句多条件筛选
- 思维意识_六顶思维帽_红帽思维
- PS人物肖像面部修图总结
热门文章
- pycharm的项目文件中包括什么_工程建设施工招标项目的招标文件包括哪些内容?...
- 华中科技大学计算机卓越计划,计算机卓越计划实验班培养计划.doc
- linux查文件名称唯美,第二章、Linux常用命令
- 【maven插件】maven-resources-plugin
- 计算机程序设计 期末考试题,《计算机编程ASP》期终习题A.doc
- php验证数字100倍数,js如何实现一个文本框只能输入数字 且是100的倍数
- python3 join函数_Python中.join()和os.path.join()两个函数的用法详解
- springboot redis 断线重连_Redis的主从复制是如何做的?复制过程中也会产生各种问题?...
- 女生做产品经理好吗_请做产品经理,别做功能经理
- discuz mysql_搭建Discuz! (mysql+apache+Discuz! )