今天在制作焦點輪播圖的時候,遇到一個問題,在使用style.left獲取圖片的位置時,怎麼也獲取不到。換用offsetLeft就能夠成功獲取到了。雖然實現了我想要的效果,但是還是不甘心啊,沒有找到原因,心裡就是怪怪的,於是我翻開JavaScript高級程序設計,將style.left和offsetLeft有關的知識點都看了一下,做了如下比較。
(一)、對於style.left類屬性,JavaScript高級程序是這樣描述的:任何支持style特性的HTML元素在JavaScript中都有一個對應的style屬性。這個style對象是CSSStyleDeclaration的實例,包含著通過HTML的style特性指定的所有樣式信息,但不包含與外部樣式表或嵌入樣式表經層疊而來的樣式(關鍵就在這句話!也就是說只有設置為行內樣式的style屬性才能被獲取)。在style特性中指定的任何CSS屬性都將表現為這個style對象的相應屬性。
(二)、對於offsetLeft累屬性:
offsetLeft:元素的左外邊框至包含元素的左內邊框之間的像素距離。
offsetTop:元素的上外邊框至包含元素的上內邊框之間的像素距離。
通過看書和今天遇到的問題,對style.left和offsetLeft做如下總結
相同點
1、style.left與offsetLeft都是相對於其父元素的值。
不同點
1、style.left返回的是字符串,帶有px;offsetLeft返回的是數值。
2、style.left時可以讀取的也是可以配置的;offsetLeft只能讀取不能配置。