回答

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滤镜不会也没有定宽的工作是很重要的。