2010-04-08 29 views
4

我試過所有瀏覽器中的jQuery fadeIn動畫,它工作良好,但在IE上沒有那麼多。 Alpha png圖像在添加CSS不透明後非常令人毛骨悚然,但我有一個想法,我不知道如何使用jQuery來實現它。jQuery,動畫不透明度爲1,然後刪除不透明屬性,使其更好地在IE上查找

這個想法是淡化元素,當動畫結束時,它會自動刪除不透明屬性,以使圖片質量更好。

如何做到這一點?

注意:我正在使用Animate而不是FadeIn。

感謝

回答

5

你可以這樣做:

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

IE使用的過濾器是什麼原因造成的ClearType基本上關閉。淡入淡出完成後,請移除該樣式屬性,就像上面的代碼一樣,將ClearType恢復爲正常工作狀態。您還可以找到替代fadeIn(),​​和fadeTo()方法與此問題在這裏處理:http://malsup.com/jquery/fadetest.html

+0

T代表我的工作他的jQuery bug在1.4.2中出現,它仍然在1.4.3 – 2010-11-05 23:50:01

+0

@Marco - 雖然(IMO)不是jQuery的bug,但它不是一個特性。它完全* IEs故障,它無法正確處理不透明和清晰類型,每個其他瀏覽器都很好。 – 2010-11-05 23:54:01

+2

@Nick Craver:實際上,這些庫(如jQuery和YUI)應該在第一位創建一個跨瀏覽器的圖層。如果我寫$(somelement).css('opacity','');我希望IE和任何其他瀏覽器都能夠去除不透明風格,我希望庫代碼也能處理任何IE問題。 – 2010-11-06 16:43:17

4

如果設置與jQuery的不透明度爲開始(0):你消失後

$(object).css("opacity", 0); 

然後在,你可以:

$(object).fadeIn("slow", function(){ 
    $(object).css("opacity", ""); 
}); 

如上面的回答並沒有在IE < = 8