在写原生轮播图的时候,发现一个问题:
必须在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");即可