js中的offsetParent,offsetLeft,offsetTop及jquery的offset(),position()比較

一、offsetParent
css

元素的offsetParent並非元素的父元素,判斷元素的offsetParent要根據如下狀況:jquery

1)當DOM結構層次中的元素均沒有進行css定位(設置position爲absolute或relative),則offsetParent爲根目錄;
對象

2)當元素的父元素沒有進行css定位,則offsetParent取最近的已經定位的元素;it

3)當元素的父元素進行了css定位,則offsetParent爲父元素;
io


二、offsetLeft,offsetTop
di

 在IE中:老是以父元素爲參照對象進行偏移;偏移量會加上父元素的邊框值。query

 在非IE中:以最近非靜態定位元素爲參照對象進行偏移。
position


三、jquery的offset()及position()ab

 offset():是用於計算絕對偏移量,獲取元素在當前窗口的相對偏移,參照對象爲body。

 position():是用於計算相對偏移量,參照對象爲最近非靜態定位的元素。

 所以,若是當前元素的上級元素position屬性值都沒有被定義爲absolute,relative,fixed,那麼當前元素的最近父級定位元素就應該是body元素,此時相對偏移位置和絕對偏移位置是相同的。

相關文章
相關標籤/搜索