2010-09-22 54 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为背景颜色设置动画效果。