也许这对你来说是一个很好的解决方案(对我来说是)。解决方案简单但有效(而且非常好)。当 IE 的父级背景没有颜色(完全透明)时,IE 会出现 alpha 透明度问题。
我们在这里所做的(参见下面的示例)是首先添加一个几乎透明的 div(对眼睛透明)。因为它是画布/容器中的第一个 div(例如=> 一个 div)并且它是绝对放置的,所以这个 div 之后的所有内容都将放在第一个 div 的顶部,所以这成为所有其他内容的背景在这个画布里面。
因为现在有背景,所以在淡入或淡出(更改不透明度时)或将画布的不透明度设置为低于 100 时,IE 不会显示令人讨厌的黑点(像素)或黑色区域。
如何 - 以 100x100 图像为例:
<div id="mycanvas" style="display:none;">
<div style="position:absolute; background:#FFF; display:block; filter:alpha(opacity=1); opacity:0; width:100px; height:100px;">
</div>
<img id="myImage" src="example.png" width="100" height="100"/>
</div>
使用 jQuery 淡入或淡出图像:
$("#mycanvas").fadeIn("slow", function()
{setTimeout(function(){$("#mycanvas").fadeOut("slow");},2000 );}
);
这也是可能的:
$("myImage").fadeIn("slow");
而已!
好消息是这个解决方案也适用于 VML/SVG (Raphael) 或其他具有 alpha 透明度的内容。此外,您不必更改/破解您的 JS 代码,因为这种“破解”不会影响其他浏览器。
希望能帮助到你。