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

Qu'est-ce qui ne va pas avec l'arrière-plan: 'transparent'? retourne blanc, pas transparenthover() backgroundColor problème

+1

Découvrez [cette question] (http://stackoverflow.com/questions/663568/how-do-i-animate-a-background-color-to-transparent-in-jquery) pour une solution de contournement – irishbuzz

Répondre

2

chose importante à noter: Transparent en CSS est différent de 0% Opacité.

L'opacité peut être graduée, tandis que la transparence est activée ou désactivée. Par conséquent, vous ne pouvez pas animer un transparent à partir d'une couleur solide et attendre une transition en douceur. Si vous essayez, la plupart des navigateurs le traiteront en noir ou en blanc pour les besoins de l'animation, ce que je pense est ce que vous voyez ici. L'animation de l'opacité à la place peut vous faciliter la transition, bien qu'elle soit différente (pour commencer, elle affecte tout l'élément, pas seulement l'arrière-plan, plus les problèmes de compatibilité avec le navigateur).

0

Vous ne pouvez pas animer la propriété d'arrière-plan.

Peut-être que vous pouvez utiliser une image-objet et utiliser le BackgroundPosition Plugin

+0

[ JQuery UI] (http://jqueryui.com/) permet l'animation des propriétés de couleur. – sje397

+0

oh, vraiment? Je ne le savais pas, merci – Xaver

0

Il est impossible d'animer la couleur de fond uniquement avec jQuery. jQuery ne prend en charge que les valeurs numériques indiquées in the jQuery-API Vous pouvez utiliser jQuery UI pour animer la couleur d'arrière-plan.