2011-03-22 94 views
1

我在js中創建了一個div,並將其設置爲不透明。這部作品在IE8沒有問題:在IE7中設置動態生成元素的不透明度

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但也無濟於事。有什麼建議麼?

感謝

回答

3

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

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

它的工作原理!謝謝。 – 2011-03-22 18:01:18

+1

什麼挑逗,評論和複選標記,但沒有upvote! :) – whoughton 2011-03-22 19:40:03

+0

除非您還設置元素的WIDTH,否則Alpha濾鏡將無法在IE7中使用。 – Billbad 2012-05-04 08:42:44

0

需要注意的是阿爾法過濾器將不會在IE7中不同時設置寬度工作是很重要的。這是一項來之不易的發現。