之前已经问过这个问题,但与性能有关。 SO答案省略了在IE上实施的问题。
我接受CSS3 Transitions比jQuery动画更快。
但是我注意到CSS3遇到IE 6-8的问题,因此需要使用像ie9.js这样的插件或选择[ivizer]。这两者在SO和其他地方都有不同的写作。
因此我想澄清一下。据我所知,jQuery animate将跨浏览器及其版本进行规范化。
因此即使回顾ie-8也是使用jQuery的最佳建议,无论速度如何?
答案 0 :(得分:1)
这在某种程度上取决于个人意见和个人需求,
如果跨浏览器支持是一个问题,我建议坚持使用jQuery,因为CSS3在浏览器中仍在快速变化。尽管CSS3在各种基准测试中确实更快。
或者,您可以使用使用CSS3过渡的专用插件,并在找到不受支持的属性时使用回退来制作动画,好的是jQuery Transit,尽管它没有满足所有需求的完整解决方案。
答案 1 :(得分:1)
jQuery使用window.setTimeout();动画元素。在最好的情况下你可以获得60 FPS。
这还不够好,而CSS3则使用硬件加速来制作动画。
如果认为你不应该被jQuery Animation所困扰。
用户moderinzr检查CSS Transition' s而不是使用CSS3。
如果不支持CSS3,我认为TweenMax比jQuery更适合动画。
PS:我建议你阅读this article。
答案 2 :(得分:1)
尽可能使用CSS过渡,在旧版浏览器上使用jQuery动画,或者过于复杂而无法轻松实现过渡。
CSS转换不再发生变化(不是从一开始就没有变化),因为它们在某些浏览器中没有前缀而实现。
如果你喜欢jQuery animate的工作方式,可以在这里找到替代品:
http://playground.benbarnett.net/jquery-animate-enhanced/
这会尽可能智能地使用转换,这意味着您可以像往常一样编写jQuery,但是您可以在新浏览器中获得更好的动画效果。
根据我的经验,该插件有时候工作得非常好,并且时不时地完全废弃 - 你应该仔细测试CSS转换版本在生产中使用前看起来是否正确。 (例如jQuery Cycle break,例如某些动画)
答案 3 :(得分:0)