2013-02-27 85 views
0
一個div的過濾器

是我見過噸的帖子在網上關於這個問題,但我似乎無法讓我的不透明度在使用Internet Explorer 5+工作。設置不透明度/在IE5 +

var container_div = document.getElementById(id);  
var container_filter = 0; 
container_div.style.filter = container_filter; 

這可以在所有其他標準瀏覽器中工作。

var container_div = document.getElementById(id);  
var container_opacity = 0; 
container_div.style.opacity = container_opacity; 

回答

1

IE5? 嚴重 ???

總之,簡單的答案是,IE的filter風格是很多比這更復雜,因爲它有許多不同的效果交易。您需要設置整個過濾器字符串,而不僅僅是一個整數值。

的語法是相當複雜的,而且不是很容易在Javascript一起工作。結果可能會有點碰巧,它並不總是工作得很好,即使你做得對。

,而不是試圖告訴你如何使filter工作,我會點你給第三方JavaScript庫,可能使事情變得更容易:cssSandpaper

cssSandpaper是一個JS庫,實現了幾個現代CSS功能集成到舊版本的IE。

然後,您可以使用CSS來設置不透明度爲IE這樣的:

opacity: 0.3; 

...或JavaScript這樣的:

cssSandpaper.setOpacity(container_div, 0.3); 

這兩個例子是按照上的文檔上面鏈接的頁面。

注:我很懷疑這個庫是否會IE5工作,但坦率地說,不要讓這種擔心你。如今大多數人甚至支持IE6被認爲是浪費時間。

+0

我知道IE5比Windows XP的舊的,但我沒有說IE5 +。我仍然在XP上! – pandoragami 2013-02-27 21:08:28

+1

爲什麼要在IE5中使用不透明度?如果您不得不對舊的瀏覽器進行編碼,您應該堅持使用它所支持的功能。在所有瀏覽器中,沒有理由讓網站看起來相同,只是在所有最新的瀏覽器中,對於舊版本的回退沒有任何壞處。 – 2013-02-27 21:14:47

+0

我想最終的問題是;爲什麼Internet Explorer吮吸如此糟糕?爲什麼他們不能實現大多數瀏覽器的標準? – pandoragami 2013-02-27 21:50:51