在IE7中设置动态生成元素的不透明度

时间:2011-03-22 17:42:00

标签: javascript css internet-explorer-7 opacity

我在js中创建一个div并设置它的不透明度。这在IE8中没有问题:

var div = document.createElement("div");
div.setAttribute("style", "opacity: 0; visibility: hidden; filter: alpha(opacity=0)");

此元素淡入/淡出,在IE8中也很有效:

if (_SU3.browser == "IE") {

    var op = element.filters.alpha.opacity;
    var newOpacity = op - (opacityStep * 100);

    if (newOpacity <= 0) {
        element.filters.alpha.opacity = 0;
        element.style.visibility = "hidden";
    } else {
        element.filters.alpha.opacity = newOpacity;
        _SU3.timeouts[url] = setTimeout(function() { _SU3.fadeOut(element, opacityStep); }, 100); 
    }

} else {

       .....
}

但它在IE7中不起作用:从开发人员工具(F12)看起来创建div时样式没有被设置。没有报告错误。所以我试过这个:

div.filters = 'alpha(opacity=0)';  

哪些错误“对象不支持此属性或方法”。我也试过设置缩放:1但也无济于事。有什么建议吗?

由于

2 个答案:

答案 0 :(得分:4)

我相信JS中IE7的格式更像是:

element.style.filter = "alpha(opacity="+ value +")"

答案 1 :(得分:0)

重要的是要注意, alpha过滤器在IE7中不起作用而不设置宽度。这是一个来之不易的发现。