美文网首页
17.1.15获取element相对位置

17.1.15获取element相对位置

作者: _v_xw | 来源:发表于2017-01-16 09:30 被阅读0次

1.//获取element相对于浏览器窗口的位置,返回一个对象{x, y}

http://www.ruanyifeng.com/blog/2009/09/find_element_s_position_using_javascript.html

在这先理解基础的窗口位置关系

然后了解下offsetParent

http://www.cnblogs.com/xiaohuochai/p/5828369.html

在这能知道返回的值得意义,这样在下面引用中就不会对while的循环条件懵逼

while的循环条件是为了让element不断向上寻找父元素,并且将他们的offsetTop值不断想家,最终得到一个相对整张网页页面的Top值和Left值,因为body元素的offsetParent=null;这个时候遍历结束。

functiongetPosition(element) {varx = 0;vary = 0;varcurrentElement = element;

//从目标元素开始往上遍历

while(currentElement !==null) {           

x+=currentElement.offsetLeft;

y+=currentElement.offsetTop;

currentElement=currentElement.offsetParent;

}

//为了兼容,documentElement、body这两个值总会有一个恒为0

varscrollLeft = document.documentElement.scrollLeft +document.body.scrollLeft;varscrollTop = document.documentElement.scrollTop +document.body.scrollTop;

x-=scrollLeft;

y-=scrollTop;return{

x: x,

y: y

};

}

相关文章

网友评论

      本文标题:17.1.15获取element相对位置

      本文链接:https://www.haomeiwen.com/subject/npshbttx.html