style.left 與offsetLeft之間的區別

  • 作者:由 匿名使用者 發表于 攝影
  • 2021-09-30

style.left 與offsetLeft之間的區別 匿名使用者 1級 2015-10-02 回答

offsetLeft 獲取的是相對於父物件的左邊距

left 獲取或設定相對於 具有定位屬性(position定義為relative)的父物件 的左邊距

如果父div的position定義為relative,子div的position定義為absolute,那麼子div的style。left的值是相對於父div的值,

這同offsetLeft是相同的,區別在於:

1。 style。left 返回的是字串,如28px,offsetLeft返回的是數值28,如果需要對取得的值進行計算,

還用offsetLeft比較方便。

2。 style。left是讀寫的,offsetLeft是隻讀的,所以要改變div的位置,只能修改style。left。

3。 style。left的值需要事先定義,否則取到的值為空。而且必須要定義在html裡,我做過試驗,如果定義在

css裡,style。left的值仍然 為空,這就是我剛開始碰到的問題,總是取不到style。left的值。

offsetLeft則仍然能夠取到,無需事先定義div的位置。

style.left 與offsetLeft之間的區別 度她餘生 1級 2015-10-02 回答

ni的css屬性left 除非是內聯樣式,或透過style。left賦值了,才有,不然即使有定位,透過n1。style。left取過來的也是null。

可以用n1。offsetleft來獲取取n1距離上一個定位區域的距離

var left=0;

var elem=n1;

do{

left+=elem。offsetleft;//距上個定位點距離

if(elem。tagname!=“body”){//忽略視窗捲軸

left-=elem。scrollleft;

};

}while(elem=elem。offsetparent);

//left就好了。。。

if(left==195){movecaption();}

Top