2010-09-22 53 views
2
 
$('li > a').hover(
    function(){ 
    $(this).animate({ 
    backgroundColor: '#2a639a', 
    color: '#fff' 
    },300).corner('5px'); 
    }, 
    function(){ 
    $(this).animate({ 
    background: 'transparent', 
    color: '#444' 
    },300); 
    } 
); 

背景有什麼問題:'transparent'? 變回白色,不透明hover()backgroundColor problem

+1

檢查出[此問題](http://stackoverflow.com/questions/663568/how-do-i-animate-a-background-color-to-transparent-in-jquery)解決方法 – irishbuzz 2010-09-22 14:48:58

回答

2

重要的是要注意的:透明的CSS爲0%不透明度不同。

不透明度可以畢業,而tranparent可以打開或關閉。因此,您無法對純色進行透明動畫處理,並期待平滑過渡。如果您嘗試,大多數瀏覽器會將其視爲黑色或白色以用於動畫,我認爲這是您在此處看到的。

改變透明度的動畫可能會給你一個更平滑的過渡,當然它不同(對於初學者來說,它會影響整個元素,不僅僅是背景,還有需要考慮的瀏覽器兼容性問題)。

0

您不能爲背景屬性設置動畫。

也許你可以使用精靈,使用BackgroundPosition Plugin

+0

另外[ JQuery UI](http://jqueryui.com/)允許動畫的顏色屬性。 – sje397 2010-09-22 14:26:54

+0

哦,真的嗎?不知道,thx – Xaver 2010-09-22 14:30:31

0

只能用jQuery來動畫背景顏色是不可能的。 jQuery僅支持數字值in the jQuery-API您可以使用jQuery UI爲背景顏色設置動畫效果。