在寫原生輪播圖的時候,發現一個問題:
必須在html標籤內的style="left:0px",寫這個,才能通過parseInt(box.style.left)屬性,
如果不寫,可以通過box.offsetLeft 來獲取,但要給父元素添加相對定位屬性,不然
獲取的是相對於body的偏移屬性。
後來在網上找到了原因:
ubox.style.xxx只能取到通過內嵌方式設置的樣式值(寫在標籤內部的);
解決辦法: 在ie中可以通過currentStyle 來獲取
例如 ubox.currentStyle.left
在火狐和谷歌中可以通過getComputedStyle(obj)[style]來獲取
在ie9及以上也可以通過getComputedStyle(obj)[Style]來獲取ie8及以下currentStyle
function getStyle(obj,Style){
return Style= obj.currentStyle? obj.currentStyle[Style] : getComputedStyle(obj)[Style]
}
var left = getStyle(ubox,"left");即可