`
DBear
  • 浏览: 228618 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类

如何获取一个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;
}
    
 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics