svg动画和css3动画优劣?

RT, 通一个过渡动画效果哪些情况适合哪个方案?

阅读 7.7k
2 个回答

个人理解,svg里有两种动画效果css是实现不了的。
一种是N边形的形变动画,比如正方形变成任意形状的四边形,只能用svg的<polygon>或者<path>的形变实现。
还有一种是要求元素按照指定路径运动,比如画一条贝塞尔曲线,然后让某个元素沿着这条曲线移动,这个也只能用svg的<animateMotion>实现。

但这两种形变使用的地方很少,绝大多数情况下,css的animation完全可以胜任各种动画效果,实现起来复杂度比svg小很多,更简易而常用的是css的transition,在只需指定动画起点和终点状态的情况下,transition够用了。

对于两者之间的性能差异,相同形变因素的前提下,两者差异不大。
个人建议除非是css完成不了的动画,能用css就用css。

因为之前正好在看《svg essentials》研究svg,对于svg动画,整理过一篇文章,对复杂属性的动画和<animateMotion>想再了解多点的话,可以翻书查查资料,也可以看这篇https://segmentfault.com/a/11...

同样期待又大牛来回答这样的问题,个人感觉要不是对svg和css3有绝对了解的,很难回答。

推荐问题
宣传栏