使用PNG透明和不透明度时,ie7和ie8中的剩余而不是透明

时间:2010-10-16 23:32:34

标签: internet-explorer-8 internet-explorer-7 transparency opacity

我正在开发一个使用PNG透明和不透明度的项目,但该区域在IE7和IE8中有剩余而不是透明,它是黑色的,有人可以帮助我吗?

print of area

由于

3 个答案:

答案 0 :(得分:1)

IE7和IE8支持PNG中不同类型的透明度。那边没问题。

您遇到的问题是IE7和IE8不支持CSS不透明度。并且您很可能有一个动态操作不透明度(element.style.opacity)的JS脚本,例如产生淡入淡出效果。如果脚本不支持不透明度,那么如何在IE7和8中更改element.style.opacity?它使用DirectX过滤器,与使用CSS过滤器相同:alpha(opacity = 50);

DirectX过滤器不是本机支持。结果是经常出现副作用。该项目将显示部分不透明度将不会由图形引擎“普通”浏览器呈现,但直接由DirectX ...在某些情况下在CSS定位上呈现字体的差异,并且...支持PNG透明度

解决方案:消除两个参数中的一个。

答案 1 :(得分: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上。

答案 2 :(得分:0)

重要的是要注意,如果不设置WIDTH,IE7中的ALPHA过滤器将无法工作。