【发布时间】:2015-08-29 17:45:15
【问题描述】:
我需要为 SVG 制作动画(使用 css),但我不想将所有 SVG 代码嵌入到页面中。
在查看了将我的 svg 包含在页面中并且仍然能够对其进行动画处理之后,我发现没有嵌入 svg 原始数据的唯一方法是使用一个对象,但是任何对 svg 进行动画处理的 css 都需要包含在样式标签中或从 svg 文件链接到。这对我来说不是一个真正的选择。
然后我查看了运行良好的 Snap,但后来我发现我可以通过 jquery 加载外部文件并使用 CSS 制作动画:
$('.mysvg').load('path/to/my-svg.svg');
我的问题是,这样做有什么限制或我应该注意的事情吗?我是否遗漏了一些明显的东西,在阅读无数关于 svg 动画的博客文章时,我没有看到这样做的例子。
【问题讨论】:
-
这取决于什么类型的css动画。如果 css3 作为实现当前不一致,您可能需要检查浏览器对您想要做的任何特定事情的支持。与 Snap 相比,您失去了细粒度的控制,但您可能不需要它。这也可能取决于您是否与鼠标进行交互,那么像 css 转换之类的东西可能需要额外考虑。基本上,需要更多信息来了解您的情况是否有任何缺点。
-
我只是使用简单的转换,例如:transform: translateY(20%);所以我不需要使用 snap 吗?直接用jquery加载图片,然后用css做动画?
-
我不记得 jquery 是否可以在 svg 上为 css 设置动画,否则可能会有 jquerysvg。基本变换应该没问题,但如果你需要像 transform-origin 这样的东西来处理旋转等东西,你可能会发现不一致。
标签: javascript jquery html svg snap.svg