asp.net - jquery循环IE7透明png问题

标签 asp.net jquery

当我在 IE7 中有透明 png 文件时,我无法让 jquery 循环正常工作

在 Firefox 和 Chrome 中没问题,但在 IE(版本 7)中我得到黑色,其中 png 透明度处于淡入淡出期间。

这可以正常工作吗?

最佳答案

不幸的是,虽然 IE7 支持透明 PNG,但一次只能对一个元素应用一个过滤器。

您的应用程序中发生的情况是,IE7 正在将 alpha 过滤器应用于您的 PNG,然后 jQuery 要求应用另一个用于淡入淡出的 alpha 过滤器。正如您所说,这已经产生了明显的结果。

解决这个问题的方法是将你的 png 嵌套在一个容器中,然后淡入容器。有点像这样:

<div id="fadeMe">
    <img src="transparent.png" alt="" />
</div>

解决这个问题的另一种方法是我使用这个简单的 jQuery 插件,因为我无法更改结构。我会注明出处,但老实说我不记得在哪里找到它的。

/* IE PNG fix multiple filters */
(function ($) {
    if (!$) return;
    $.fn.extend({
        fixPNG: function(sizingMethod, forceBG) {
            if (!($.browser.msie)) return this;
            var emptyimg = "empty.gif"; //Path to empty 1x1px GIF goes here
            sizingMethod = sizingMethod || "scale"; //sizingMethod, defaults to scale (matches image dimensions)
            this.each(function() {
                var isImg = (forceBG) ? false : jQuery.nodeName(this, "img"),
                    imgname = (isImg) ? this.src : this.currentStyle.backgroundImage,
                    src = (isImg) ? imgname : imgname.substring(5,imgname.length-2);
                this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + sizingMethod + "')";
                if (isImg) this.src = emptyimg;
                else this.style.backgroundImage = "url(" + emptyimg + ")";
            });
            return this;
        }
    });
})(jQuery);

注意最初该插件是为了修复 IE6 中的 PNG 透明度而编写的,但我对其进行了修改以解决 IE6+ 中的问题。

旁注:我记不清了,但我认为 IE8 可能也有同样的问题。如果我错了请纠正我:)

关于asp.net - jquery循环IE7透明png问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1156985/

相关文章:

asp.net - Web API 授权属性不适用于操作

asp.net - 将 taghelpers 用于表单中与 View 预期不同的模型

javascript - 在 radTreeView 中选择一个节点

asp.net - 对嵌套母版页使用继承

javascript - 限制提示框中的输入

javascript - 给出错误页面单击 anchor 标记 - 页面加载

asp.net - 无法在子页面的页面加载事件中访问母版页中的隐藏字段值

javascript - 有没有办法使用 javascript 或 Jquery 找出某人计算机上屏幕的宽度?

javascript - 如何使用jquery ajax显示从数据库到图像src的图像文件路径

javascript - javascript中如何从函数中知道对象?