gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 21:27:39 25 4
gpt4 key购买 nike

当我在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com