这个问题之前已经被问过,但与性能有关。SO 的答案省略了在 IE 上实现的问题。
我接受 CSS3 过渡比 jQuery 动画更快。
但是我注意到 CSS3 在 IE 6-8 中遇到了问题,因此需要使用像 ie9.js 或 select[ivizer] 这样的插件。两者在 SO 和其他地方都有不同的写作。
因此,我想在这里澄清一下。据我了解,jQuery animate 将跨浏览器及其版本进行规范化。
因此,即使回顾 ie-8 也是使用 jQuery 的最佳建议,而不管速度方面有什么影响?
这有点个人意见和个人需求的问题,
如果跨浏览器支持是一个问题,我的建议是坚持使用 jQuery,因为 CSS3 仍然在跨浏览器快速变化。尽管 CSS3 在各种基准测试中确实证明更快。
或者,您可以使用使用 CSS3 转换的专用插件,并在找到不受支持的属性时回退到动画,一个好的插件是jQuery Transit,尽管它没有满足所有需求的完整解决方案。
尽可能使用 CSS 过渡,在旧浏览器上使用 jQuery animate,或者在事情变得太复杂而无法轻松实现过渡的地方。
CSS 过渡不再改变(从一开始就没有改变),因为它们在某些浏览器中是在没有前缀的情况下实现的。
如果您喜欢 jQuery animate 的工作方式,可以在此处找到替换项:
http://playground.benbarnett.net/jquery-animate-enhanced/
这在可能的情况下智能地使用了过渡,这意味着您可以像往常一样编写 jQuery,但您会从新浏览器中更好的动画中受益。
根据我的经验,该插件有时工作得非常好,并且时不时地完全破坏了一切——你应该在生产中使用之前仔细测试 CSS 过渡版本是否正确。(例如某些动画上的 jQuery Cycle break 之类的东西)