我应该 use/avoid jQuery 动画吗?

Should I use/avoid jQuery animate?

回答 时突然想到一个问题,OP 想在其中应用此转换:

test.css({transition: 'height 1s linear', height: '100px'});

然后回到这个:

test.css({transition: 'none', height: '0px'});


他说需要用js来做,求更好的idea,所以我提供了这个方法:

test.animate({height: '100px'}, 1000, 'linear', function(){
    test.css({transition: 'none', height: '0px'});
});

这是我的 jsFiddle:https://jsfiddle.net/mqaunyvp/1/

@Matrix 评论说 JS 和 jQuery 动画的优化不如原生 CSS,这是正确的,但我认为在那个上下文中不是主题。

那么问题来了:

按照我建议的方式完成这个是否正确?或者你会反对它吗?为什么?

所有评论的结论:

jQuery 不是为动画对象创建的 ,因此它可能会很慢且滞后(取决于内容和方式很多你动画)。但是使用 jQuery.animate() 功能滚动页面在大多数情况下效果很好。

对于更高级的动画(比如移动物体或同时做复杂或许多动画),使用库作为velocity.

如果您只想动画化文本 style/color 或下拉菜单,它会更快(并且更容易 IMO ) 使用 CSS transitions/animations.

所以这取决于你在做什么。希望这对您有所帮助!