获取具有边距的body元素的左侧和顶部偏移:auto

时间:2012-04-30 12:14:13

标签: javascript dom mouseevent

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

由于event.clientX和event.clientY属性给出了从页面开头的偏移量,而不是来自body元素的偏移量,我试图将它减去身体偏移量。为此,我尝试使用document.body.offsetLeft& document.body.offsetTop,但到目前为止没有运气,价值未定义。另外,由于我没有定义它,我不能使用document.body.style.left或document.body.style.top。

是否有人知道获取身体偏移的方法或直接获取相对于DOM元素的鼠标坐标?

提前谢谢!

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:0)

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