个人理解,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里有两种动画效果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...