当前位置: 代码迷 >> Web前端 >> 怎么获取一个dom元素的绝对位置
  详细解决方案

怎么获取一个dom元素的绝对位置

热度:21   发布时间:2012-10-21 09:00:07.0
如何获取一个dom元素的绝对位置

? ?应用场景:鼠标滑过某元素时,需要弹出一个信息标签,标签的位置要根据滑过元素的位置而定。

?

? ?难点:目标元素并不一定是absolute的,因此不能简单的通过top,left这种属性获取。元素可能包裹在n个父元素内,需要把这些因素都考虑进去。

?

? 解决思路:先获取该元素的offsetLeft和offsetTop,然后取它的offsetParent,并向外循环,累加这些left和top,最后得到的就是元素的绝对位置。

?

? 代码:

var obj = xxx; //这个元素就是目标元素,你可以用任何方式将它传入。

var w = obj.offsetWidth, h = obj.offsetHeight;

//从目标元素开始向外遍历,累加top和left值
for (var t = obj.offsetTop, l = obj.offsetLeft; obj = obj.offsetParent;) {
    	t += obj.offsetTop;
        l += obj.offsetLeft;
}
    
?

?

?

?

  相关解决方案