在寫原生js輪播圖的時候,無法獲取到left屬性

在寫原生輪播圖的時候,發現一個問題:

必須在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");即可




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章