使用javascript和Jquery修复IE6 png透明度的最佳方法是什么

时间:2009-12-13 17:52:16

标签: javascript jquery internet-explorer-6 png transparency

有没有简单的方法来修复IE6 PNG透明度与javascript和jquery使用任何插件或太复杂的东西?

6 个答案:

答案 0 :(得分:4)

您可以使用这个小插件为您完成:

http://jquery.andreaseberhard.de/pngFix/

然而,主要的解决方案是围绕IE渲染引擎中包含的过滤器构建。这些可以通过css或javascript添加。

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="img.png");

答案 1 :(得分:2)

答案 2 :(得分:1)

我已成功使用this(IEPng Fix)。这是一种自定义行为,您可以通过执行此类操作来使用...

<style type="text/css">
    img, div { behavior: url(iepngfix.htc) }
</style> 

在线教程是here

答案 3 :(得分:0)

有许多不同的方法来解决这个问题,但在IE6中解决透明PNG问题的最好和最轻的方法之一是使用DD_belatedPNG。这个轻量级但功能强大的Javascript库为IE6增加了透明PNG图像支持,而仅为5.5KB ,因此它不会对您网站的加载时间产生太大影响。它设置简单,它将修复CSS背景图像以及<IMG/>元素。

在此处查看更多详情http://www.cre8ivecommando.com/ie6-png-fix-transparent-png-image-support-for-ie6-174/

答案 4 :(得分:-1)

jQuery pngfix插件修复了所有 PNG,这是一个复杂的命题,可能比你需要的更强大。它解决了:

  • IMG标签
  • CSS背景图片
  • 作为图像的INPUT按钮

要真正回答你的问题,我需要知道你需要修复什么,特别是。例如,如果你只关心CSS背景图像(可能你只是在做软阴影),那么我建议你只需从该插件中复制8行的'粘贴'。

    // fix css background pngs
    jQuery(this).find("*").each(function(){
        var bgIMG = jQuery(this).css('background-image');
        if(bgIMG.indexOf(".png")!=-1){
            var iebg = bgIMG.split('url("')[1].split('")')[0];
            jQuery(this).css('background-image', 'none');
            jQuery(this).get(0).runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + iebg + "',sizingMethod='scale')";
        }
    });

答案 5 :(得分:-3)

如果是IE6,我建议使用透明的gif。在页面加载时,执行browser detect,并根据需要在javascript中设置图像src。