【发布时间】:2020-08-16 18:08:08
【问题描述】:
我想知道 css 动画(关键帧)与 css 过渡的性能差异。
在我的测试中,似乎在某些情况下过渡效果比关键帧好得多。这篇文章也提出了相同的建议,但它是从 2015 年开始的,所以认为它可能已经过时了https://www.pixelstech.net/article/1434375977-CSS3-animation-vs-CSS3-transition
看MDNhttps://developer.mozilla.org/en-US/docs/Web/Performance/CSS_JavaScript_animation_performance 它指出“在性能方面,使用 CSS 过渡或动画实现动画没有区别。在本文中,它们都归类在同一个基于 CSS 的保护伞下。”
所以我很惊讶地看到测试中的差异。也许它们在 Firefox 上是一样的,但使用 Chrome 我肯定会看到不同。
我已经对代码和框进行了一些测试,以显示带有关键帧与过渡的动画卡顿。这里有一些重要因素: 1. 我正在为变换和边界半径设置动画。我知道你“不应该”为边界半径设置动画,但这是测试的一部分。 2. 当我将这两个测试组合成一个 SPA 并在它们之间切换时,它们都表现良好,因此可能与页面加载有关。
要查看测试的所有问题,请使用 chrome 开发工具选择“mid-tier mobile”。
Janky CSS 动画 https://codesandbox.io/s/perf-test-css-animation-nl6xs
平滑的 CSS 过渡 https://codesandbox.io/s/perf-test-css-transition-fgd7w
对此的任何帮助将不胜感激。我确定我们无法修复它,但想知道为什么关键帧有时与过渡相比性能较差。
谢谢!
【问题讨论】:
标签: css animation css-animations transition jank