显然没有一个答案是详尽无遗的。纯粹的“CSS3 艺术”是我见过人们使用的路线,因为它可以精确地定义复杂的几何图形和动画。但这里有一些我研究过使用 SVG 的方法。
实际上,您可以在 SVG 中嵌入一个脚本标签来为元素设置动画。像这样的:
<svg>
<!-- svg objects -->
<script><![CDATA[!
//... Javascript to animate svg objects...
]]></script>
</svg>
您还可以使用像 snapsvg.io 这样的库,其中动画 svg 的构建完全使用 JavaScript 完成。这是他们用于their quickstart 页面的示例:
var s = Snap("#svg");
var bigCircle = s.circle(150, 150, 100);
bigCircle.attr({
fill: "#bada55",
stroke: "#000",
strokeWidth: 5
});
var smallCircle = s.circle(100, 150, 70);
var discs = s.group(smallCircle, s.circle(200, 150, 70));
discs.attr({
fill: "#fff"
});
bigCircle.attr({
mask: discs
});
smallCircle.animate({r: 50}, 1000);
否则,您可以使用无代码的动画 svg 创建器,例如 this one。
免责声明:我没有在演示计划之后测试过无代码站点,并且可能永远不会使用它。我个人的偏好可能是第一个建议,但像 snapsvg.io 这样的 JavaScript 库似乎是一个不错的中间立场。