2011-08-19 139 views
0

我正在使用jQuery为悬停上的导航按钮提供颜色更改动画。我有.menu-horizontal.menu-vertical。但由于某种原因,动画功能与.menu-horizontal配合良好,但不适用于.menu-verticaljQuery动画问题

垂直菜单的颜色不会改变。

<script type="text/ecmascript"> 
$(document).ready(function() { 
    $(".menu-horizontal ul li a").hover(function() { 
     $(this).stop().animate({ height: "31px", backgroundColor: "#3185b7" }, 600); 
    }, function() { 
     $(this).stop().animate({ height: "31px", backgroundColor: "#4fb3d3" }, 600); 
    }); 

    $(".menu-vertical ul li a").hover(function() { 
     $(this).stop().animate({ height: "31px", backgroundColor: "#3185b7" }, 600); 
    }, function() { 
     $(this).stop().animate({ height: "31px", backgroundColor: "#4fb3d3" }, 600); 
    });    
}); 
</script> 
+1

这不会解决您的问题,但是您是否意识到您可以将代码缩减一半?你不需要写出两次代码,你可以在两个选择器中放置:'$(“。menu-horizo​​ntal ul li a,.menu-vertical ul li a”)。hover(function(){' – tw16

回答

1

你不能用jQuery单独动画background-color

(例如,宽度,高度,或左可以是动画但background-color是不可能的。)

来源:http://api.jquery.com/animate/#animation-properties

选项1:设置background-color首先使用.css()和然后制作高度的动画。

选项2:使用plugin来促成background-color动画。