JavaScript获取鼠标坐标:相对于Body与指定元素的方法
作者:白露时间:2026-10-27 08:24:38浏览:529
本文介绍在JavaScript中获取鼠标坐标的两种常见场景:相对于浏览器视口(Body)和相对于特定DOM元素。通过结合event.clientX/Y与元素的offsetLeft/Top及页面滚动高度,可精确计算鼠标在任意元素内的相对位置。
// 计算相对于目标对象的纵坐标:鼠标相对页面的纵坐标 - 对象相对页面的纵坐标 + 页面滚动高度
获取相对于Body的鼠标坐标
代码如下:
var x, y;
// 当需要获取相对于页面主体(Body)的坐标值时,使用以下方法:
function positionBody(event) {
event = event || window.event;
// 获取相对于Body定位的横坐标值
x = event.clientX;
// 获取相对于Body定位的纵坐标值
y = event.clientY;
}
获取相对于特定DOM元素的鼠标坐标// 当需要获取相对于特定对象(Element)的坐标值时,使用以下方法:
function positionObj(event, id) {
// 获取指定ID对象相对于页面左上角的横坐标
var thisX = document.getElementById(id).offsetLeft;
// 获取指定ID对象相对于页面左上角的纵坐标
var thisY = document.getElementById(id).offsetTop;
// 获取页面滚动的垂直距离
// 注意:document.documentElement.scrollTop 适用于非WebKit内核浏览器;
// document.body.scrollTop 适用于WebKit内核(如Chrome)浏览器
var thisScrollTop = document.documentElement.scrollTop + document.body.scrollTop;
event = event || window.event;
// 计算相对于目标对象的横坐标:鼠标相对页面的横坐标 - 对象相对页面的横坐标
x = event.clientX - thisX;
}作者最新文章
sigma.js 怎么实现节点点击、拖拽与悬停提示交互
2026-11-05 15:03:27
Matter.js 与 PixiJS/Three.js 集成:分离物理计算与渲染
2026-11-05 13:43:48
主流JS弹幕库选型指南:Danmaku.js等库的功能与体积对比
2026-11-05 09:28:19
JavaScript点击事件监听与交互效果实例
2026-11-05 09:10:19
自定义JS颜色选择器UI样式与交互细节
2026-11-05 09:09:06
