1.//獲取element相對于瀏覽器窗口的位置,返回一個對象{x, y}
http://www.ruanyifeng.com/blog/2009/09/find_element_s_position_using_javascript.html
在這先理解基礎(chǔ)的窗口位置關(guān)系
然后了解下offsetParent
http://www.cnblogs.com/xiaohuochai/p/5828369.html
在這能知道返回的值得意義,這樣在下面引用中就不會對while的循環(huán)條件懵逼
while的循環(huán)條件是為了讓element不斷向上尋找父元素,并且將他們的offsetTop值不斷想家,最終得到一個相對整張網(wǎng)頁頁面的Top值和Left值,因為body元素的offsetParent=null;這個時候遍歷結(jié)束。
functiongetPosition(element) {varx = 0;vary = 0;varcurrentElement = element;
//從目標(biāo)元素開始往上遍歷
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
};
}