我应该 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.
所以这取决于你在做什么。希望这对您有所帮助!
回答
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.
所以这取决于你在做什么。希望这对您有所帮助!