jQuery,Animate opacity为1然后删除opacity属性,使其在IE上更好看

Emi*_*ily 4 javascript jquery

我在所有浏览器中尝试了jQuery fadeIn动画,它运行良好,但在IE上却没有那么多.在附加CSS不透明度之后,Alpha png图像是如此令人毛骨悚然,但我有一个想法,我不知道如何使用jQuery实现它.

想法是淡化元素,当动画完成时,它将自动删除不透明度属性,以使图像质量更好.

怎么做?

注意:我使用的是Animate,而不是FadeIn.

谢谢

Nic*_*ver 5

你可以这样做:

$(selector).animate({opacity: 1}, function() {
  $(this).get(0).style.removeAttribute('filter');
});
Run Code Online (Sandbox Code Playgroud)

过滤器IE使用的是导致ClearType基本关闭的原因.淡化完成后删除该样式属性,如上面的代码,将ClearType恢复到正常工作状态.您还可以找到替代fadeIn(),fadeOut()fadeTo()方法与此问题在这里处理:http://malsup.com/jquery/fadetest.html

  • @Nick Craver:但实际上这些库(比如jQuery和YUI)应该在第一位创建一个跨浏览器的层.如果我写$(somelement).css('opacity',''); 我希望IE和任何其他浏览器都删除不透明样式,我希望库代码也能处理任何IE问题. (2认同)

小智 5

如果使用jQuery设置不透明度(以0开头):

$(object).css("opacity", 0); 
Run Code Online (Sandbox Code Playgroud)

然后在你淡入之后,你可以:

$(object).fadeIn("slow", function(){ 
    $(object).css("opacity", "");
});
Run Code Online (Sandbox Code Playgroud)

因为上面的答案在IE <= 8中对我不起作用