使用边距获取正文元素的左偏移量和顶部偏移量:自动

Getting left and top offset for body element with margin:auto

本文关键字:偏移量 顶部 自动 元素 获取 正文      更新时间:2023-09-26

我正在尝试获取相对于正文的鼠标位置(即 body = 坐标原点),该网站的 body 元素大小固定并使用 margin:auto CSS 属性居中。

由于 event.clientX 和 event.clientY 属性为我提供了页面开头的偏移量,而不是 body 元素的偏移量,因此我尝试减去正文偏移量。为此,我尝试使用document.body.offsetLeft和document.body.offsetTop,但到目前为止没有运气,值是未定义的。另外,由于我没有定义它,所以我不能使用 document.body.style.left 或 document.body.style.top。

有没有人知道一种方法来获取身体偏移量或直接获取相对于 DOM 元素的鼠标坐标?

提前谢谢你!

使用 element.getBoundingClientRect() 获取元素的相对偏移量:

var bodyOffsets = document.body.getBoundingClientRect();
//bodyOffsets.top   ;
//bodyOffsets.left  ;

使用 Jquery 方法 position() - 它检索相对于偏移父项的当前位置。