2012-10-14 172 views
0

我想让一些文字的背景颜色在悬停时淡入/淡出。由于文本位于图像的顶部,因此我希望背景颜色从透明度淡入然后回到透明。动画背景颜色来自/透明

这是我到目前为止有:

$('#nav li.menu').hover(
    function() { 
     $(this).animate({backgroundColor: "#FFEF00"},300); 

    }, 
    function() { 
     $("li.menu").animate({backgroundColor: "Transparent"},300);   
    } 
); 

然而,当我运行此代码,动画变成背景色为白色才开始制作动画。有谁知道我该如何解决这个问题?

谢谢, MJ

+0

您是否包含[jQuery UI](http://jqueryui.com/animate/)? – Giona

+0

如果在回答中使用了http://jsfiddle.net/,将不胜感激。我仍然在学习JavaScript,所以一个工作演示会非常有帮助! – M2J

+0

是的,我已经包含了jQuery UI – M2J

回答

0

“透明” 本身并没有多大的意义。颜色由红色,绿色,蓝色和阿尔法定义。由于页面的默认背景颜色是白色,因此“透明”实际上被翻译为“带有alpha 0的白色”是有意义的。

尝试使用rgba()表示法来强制特定的“透明”颜色。

$("li.menu").animate({backgroundColor:"rgba(0xff,0xef,0,0)"}); 
0

你确实不能通过jquery轻松地改变背景颜色,就像afshin说的那样。然而,还有另一种方式! 将文本放在div中,并为div分配与背景相同的颜色。 (或任何它应该是什么颜色)

然后,在您的css中创建另一个类或id,并使用jquery更改悬停上的类/ id。 (.getElement命令,如果您需要知道)

祝您好运。