JavaScript获取鼠标坐标:相对于Body与指定元素的方法

作者:白露

时间:2026-10-27

浏览:528

本文介绍在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;
}

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章