1. 程式人生 > >JavaScript offset家族

JavaScript offset家族

(1)offsetWith & offsetHeight  用來獲取盒子在頁面上的實際佔有的大小

  obj.style.width只能讀取或者寫入行內樣式,對於非行內樣式,它無法設定和讀取

  1.obj.offsetWith 寬

    obj.offsetHeight 高

  2.obj.style.width 與 obj.offsetWidth的區別

  obj.style.width屬性是字串,讀取出來的資料是帶有"px"的(不能直接做加減乘除的運算)

   obj.offsetWidth

是數值型別,讀出的資料沒有"px"(可以直接做加減乘除)

  obj.style.width是可讀可寫的

   offsetWidth是隻讀屬性,不能修改。

  obj.style.width只能讀取或者寫入行內樣式,對於非行內樣式,它無法設定和讀取

   offsetWidth可以隨時讀取當前盒子的寬度,無論是行內樣式還是非行內樣式

  注意:offsetWidth = width + padding + border

 

 (2)offsetLeft & offsetTop 盒子與上級盒子的距離

 注意,一定不能使用obj.style.left來計算距離

 obj.style.left,只能讀寫行內樣式

  offsetLeft能讀取任何地方設定的樣式

 obj.style.left是個字串,帶有“px”字尾

  offsetLeft是數值型別,能直接做算數運算

 offsetLeft是隻讀的,obj.style.left是可讀可寫的

 offsetLeft讀取的是距離上一級聲明瞭定位方式的盒子的距離,如果沒有任何1級父盒子聲明瞭定位方式

  那麼offsetLeft讀取的就是距離

body的距離。如果多個父級盒子都聲明瞭定位方式,那麼以最近的那個盒子為準

 offsetLeft讀取到的是邊框到邊框的距離(含有padding

 

 注意:只有offsetLeft和offsetTop,沒有offsetRight和offsetBottom

 

(3)offsetParent

offsetParent獲取當前盒子的父級盒子的DOM物件

跟父級盒子有沒有宣告定位方式有直接關係。

如果父級盒子聲明瞭定位方式,那麼offsetParent讀取到的就是離他最近的那個聲明瞭定位的上級盒子。

如果所有的上級盒子都沒晟敏定位,那麼offsetParent讀出來的就是body標籤物件

 

parentNode得到的永遠是直接父節點