在写原生js轮播图的时候,无法获取到left属性

来源:互联网 发布:cutie软件下载 编辑:程序博客网 时间:2024/05/20 07:51

在写原生轮播图的时候,发现一个问题:

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