回答

1

我有一個解決方案,已經在多個網站上使用過。

你的HTML內容已被寫入到頁面後,只需運行該功能:

function fixPNGs(){ 
    if(jQuery.browser.msie && jQuery.browser.version < 9){ 
    var i; 
    //alert(document.images.length); 
    for(i in document.images){ 
     if(document.images[i].src){ 
     var imgSrc = document.images[i].src; 
     if(imgSrc.substr(imgSrc.length-4) === '.png' || imgSrc.substr(imgSrc.length-4) === '.PNG'){ 
     document.images[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='crop',src='" + imgSrc + "')"; 
     } 
     } 
    } 
    } 
} 

它只會在IMG元素而不是背景圖像工作。但一旦應用,您就可以淡入淡出圖像併爲您的內容添加動畫。我對一些雄心勃勃的動畫經歷了一些奇怪的副作用,但在90%的時間內沒有問題。

希望這可以幫助你!

W.

1

IE7和IE8支持不同類型的透明PNG。那邊沒問題。

你遇到的問題是IE7和IE8不支持CSS的不透明度。你很可能有一個JS腳本動態地操縱不透明(element.style.opacity),例如產生淡入淡出效果。那麼腳本如何在IE7中更改element.style.opacity,如果它們不支持不透明度,那麼該如何更改8?它使用了DirectX過濾器,可以使用CSS過濾器:alpha(opacity = 50);

DirectX的過濾器是不是原生支持。其後果是通常會帶來副作用。該項目將顯示的部分不透明將不會由圖形引擎「普通」瀏覽器呈現,而是直接由DirectX呈現......在CSS定位的某些情況下呈現字體的差異,以及...支持PNG透明度。

解決方案:消除兩個參數之一。

+0

不行的人,對不起,這個問題帶有閃光燈,改變功能轉盤閃存解決。 – flaviomuniz 2010-10-27 17:41:51

0

要注意,在IE7的alpha濾鏡不會也沒有定寬的工作是很重要的。