jQuery动画仅能在数字CSS值之间进行动画处理。它不会在类之间进行动画处理(请参见下面的示例以了解如何执行此操作)。.animate()函数将您提供的CSS作为参数添加并将其添加为内联CSS。它将始终覆盖样式表CSS。这是可以接受的,但有点混乱,并且很容易失控。
然而,如果您想在类之间进行动画处理,则使用CSS3过渡属性可以提高性能并使代码更加简洁。请参见以下示例:
HTML
<div class="myTestAnimation">Something to test</div>
JQuery (也可以使用原生 JavaScript)。只需切换类之间的状态,这样您就不会在 CSS 中包含任何样式信息。
jQuery(document).ready(function($) {
$(".myTestAnimation").click(function() {
$(this).toggleClass("animate");
});
});
CSS(这个动画实现了宽度、高度和背景颜色的变化)。.animate() 不能实现背景颜色的动画效果,所以这是一个额外的奖励。
.myTestAnimation {
width: 50px;
height: 50px;
background-color: red;
-webkit-transition: background-color 300ms linear, width 300ms linear, height 300ms linear;
transition: background-color 300ms linear, width 300ms linear, height 300ms linear;
position: relative;
}
.myTestAnimation.animate {
background-color: blue;
width: 200px;
height: 200px;
}