CSS3过渡v jQuery动画 - 强大的方法?

时间:2012-11-06 08:37:29

标签: jquery css3

之前已经问过这个问题,但与性能有关。 SO答案省略了在IE上实施的问题。

我接受CSS3 Transitions比jQuery动画更快。

但是我注意到CSS3遇到IE 6-8的问题,因此需要使用像ie9.js这样的插件或选择[ivizer]。这两者在SO和其他地方都有不同的写作。

因此我想澄清一下。据我所知,jQuery animate将跨浏览器及其版本进行规范化。

因此即使回顾ie-8也是使用jQuery的最佳建议,无论速度如何?

4 个答案:

答案 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)

你可以使用.animate(),这有点难,但我发现了一个让你的工作变得容易的插件。

cycle plugin

此插件为您提供平滑过渡。我检查了IE 9,它工作正常。