【问题标题】:Surplus in ie7 and ie8 intead of being Transparent while using PNG transparent and opacity在使用PNG透明和不透明时,ie7和ie8中的盈余而不是透明
【发布时间】:2011-04-26 11:06:12
【问题描述】:

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

print of area

谢谢

【问题讨论】:

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


    【解决方案1】:

    请务必注意,如果不设置 WIDTH,IE7 中的 ALPHA 过滤器将无法工作。

    【讨论】:

      【解决方案2】:

      我有一个解决方案,之前在多个网站上使用过。

      在您的 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.

      【讨论】:

        【解决方案3】:

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

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

        DirectX 过滤器不是原生支持。结果是它常常伴随着副作用。该项目将以部分不透明度显示 不会由图形引擎“普通”浏览器呈现,而是直接由 DirectX 呈现......在某些情况下,CSS 定位上的字体呈现不同,并且......支持 PNG 透明度.

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

        【讨论】:

        • 不工作,抱歉,flash 解决了问题,为 flash 更改功能轮播。
        猜你喜欢
        • 2010-12-19
        • 2011-10-13
        • 2012-07-08
        • 2013-10-04
        • 2020-04-13
        • 2013-08-14
        • 2011-06-22
        • 2011-06-15
        • 2011-09-10
        相关资源
        最近更新 更多