在我看来,animate与CSS3相比,jQuery 有点过度使用transition,后者在任何2D或3D属性上执行此类动画。另外,我担心,将它留给浏览器并忘记名为JavaScript的图层可能会导致CPU备用 - 特别是当您希望使用动画进行爆破时。因此,我喜欢使用样式定义的动画,因为您使用JavaScript定义了功能。您注入JavaScript的演示文稿越多,您稍后将面临的问题就越多。您所要做的就是使用addClass要设置动画的元素,您可以在其中设置具有CSS transition属性的类。您只需“激活”动画,该动画将保留在纯表示层上。.js文件// with jQuery$("#element").addClass("Animate");// without jQuery librarydocument.getElementById("element").className += "Animate";可以使用jQuery轻松删除类,或者删除没有库的类。的CSS#element{
color : white;}#element.Animate{
transition : .4s linear;
color : red;
/**
* Not that ugly as the JavaScript approach.
* Easy to maintain, the most portable solution.
*/
-webkit-transform : rotate(90deg);}html的<span id="element">
Text</span>对于大多数用例,这是一种快速方便的解决方案。当我想实现不同的样式(替代CSS属性)时,我也使用它,并希望使用全局.5s动画即时更改样式。我添加了一个新类BODY,同时在这样的形式中使用替代CSS:.js文件$("BODY").addClass("Alternative");的CSSBODY.Alternative #element{
color : blue;
transition : .5s linear;}这样,您可以在动画中应用不同的样式,而无需加载不同的CSS文件。您只需要JavaScript来设置class。