当您使用内联 SVG 时,所有 SVG 代码都直接位于 HTML 中,因此也在 DOM 中。您可以像对待<div>
、<h1>
或任何其他 HTML 元素一样对其进行样式设置。CSS 样式带来了动画和过渡的可能性。
一个简单的例子
查看 Chris Coyier 在 CodePen 上的笔 CodePen Logo as Inline SVG(@chriscoyier)。
我写了一篇关于如何处理稍微复杂一点的设计的文章在本教程中。这是该演示。
查看 Chris Coyier 在 CodePen 上的笔 Wufoo SVG Ad(@chriscoyier)。
在这个屏幕录像中,我们为 Wufoo 制作了另一个动画 SVG 广告,几乎从头开始。设计中有一些云,我们对其进行动画处理,使其平滑且无限地移动和重复。
最初,我们使用内联 SVG 并使用附加到同一 HTML 文档的 CSS 对其进行动画处理。但是,只是为了展示它的工作原理,我们将该 CSS移动到SVG 本身中,这完全有效。您可能希望这样做是因为,即使您将 SVG 作为<img>
或background-image
使用,动画也可以运行。
演示
查看 Chris Coyier 在 CodePen 上的笔 kKdDj(@chriscoyier)。
该动画的浏览器支持会有所不同。在撰写本文时,它仅在 Chrome 中有效。
你并没有真正给 Firefox 机会工作,因为你只为 Webkit 添加了前缀。而且你让“鸟”向后飞了 :)
除此之外,非常酷。
看到 img 标签有效让我感到惊讶,因为我认为你在之前的某个视频中解释过它不会工作。或者也许我只是记错了。
请,我真的很感谢你的帮助。
我需要了解如何通过 html 为 SVG 制作动画,包括关键帧的动画。
您可以直接在其中一个路径或形状元素上应用动画。
这里有一个使用链接悬停效果的示例
或者,对于更复杂的动画,您可以考虑使用 GSAP 等库。这是一个示例