- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
现在SMIL is dying我想将我的简单动画 SVG 转换为使用 CSS 动画,但我不太确定如何进行映射。在这个特定的 svg 中有两个动画元素。
#embedded {
color: red;
}
<svg id="embedded" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
<circle cx="50" cy="50" r="45" stroke="rgba(43,43,43,0.3)" fill="none" stroke-width="10" stroke-linecap="round"/>
<circle cx="50" cy="50" r="45" stroke="currentColor" fill="none" stroke-width="6" stroke-linecap="round">
<animate attributeName="stroke-dashoffset" dur="2s" repeatCount="indefinite" from="0" to="502"/>
<animate attributeName="stroke-dasharray" dur="2s" repeatCount="indefinite" values="150.6 100.4;1 250;150.6 100.4"/>
</circle>
</svg>
虽然我一开始似乎对这些 CSS 规则还不错,但很快就卡住了
stroke-dasharray: 150.6 100.4 1 250 150.6 100.4;
animation-duration: 2s;
animation-iteration-count: infinite;
stroke-dashoffset: ?;
完整的映射是什么样的?有可能吗? Sara Soueidan说并不是所有的动画都可以使用 CSS 而可以使用 SMIL。
最佳答案
下面是如何将 SMIL 动画转换为等效的 CSS 动画:
animate
标签都有 dur="2s"
,因此 CSS 动画的持续时间 (animation-duration
) 也将是 2 秒
。您可以使用长手属性或短手属性指定此值,如以下代码段所示。animate
元素指定 calcMode
属性,因此插值模式为 linear
。由于插值模式是线性
,animation-timing-function
也将是线性
。repeatCount
是不确定的
,因此animation-iteration-count
将是无限的
。stroke-dashoffset
,动画只有一个从 (0%) 和一个到 (100%) 的值。因此,在 CSS 动画的关键帧中,我们将 stroke-dashoffset
指定为 0
(from
值)在 0%
和 502
(到
值)在 100%
。stroke-dasharray
,动画使用了values 而不仅仅是 from
和 到
。在这种情况下,有三个分号分隔的值,因此列表中的第一个值在 0%
关键帧中给出,列表中的第二个值在 50%< 中给出
关键帧,最后一个在 100%
关键帧选择器中给出。#embedded, #embedded2 {
color: red;
width: 200px;
height: 200px;
}
#embedded circle#animated {
animation: demo 2s infinite linear;
}
@keyframes demo {
0% {
stroke-dashoffset: 0;
stroke-dasharray: 150.6 100.4;
}
50% {
stroke-dasharray: 1 250;
}
100% {
stroke-dashoffset: 502;
stroke-dasharray: 150.6 100.4;
}
}
<svg id="embedded" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
<circle cx="50" cy="50" r="45" stroke="rgba(43,43,43,0.3)" fill="none" stroke-width="10" stroke-linecap="round" />
<circle cx="50" cy="50" r="45" stroke="currentColor" fill="none" stroke-width="6" stroke-linecap="round" id="animated">
</circle>
</svg>
<svg id="embedded2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
<circle cx="50" cy="50" r="45" stroke="rgba(43,43,43,0.3)" fill="none" stroke-width="10" stroke-linecap="round" />
<circle cx="50" cy="50" r="45" stroke="currentColor" fill="none" stroke-width="6" stroke-linecap="round">
<animate attributeName="stroke-dashoffset" dur="2s" repeatCount="indefinite" from="0" to="502" />
<animate attributeName="stroke-dasharray" dur="2s" repeatCount="indefinite" values="150.6 100.4;1 250;150.6 100.4" />
</circle>
</svg>
关于css - SMIL 到 CSS 动画 : multiple animations on single element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42248616/
SMIL ( Synchronized Multimedia Integration Language ) 对于现代应用程序来说已经死了吗? 是否有替代它的用于组合媒体的标准化格式? 最佳答案 从缺乏
有人有学习 SMIL 动画的资源吗? 最佳答案 这些应该让你继续: W3Schools SVG Reference Hefty tutorial连同 66 page PDF tutorial Anim
我正在尝试向简单的 SVG SMIL 动画添加计时功能。显然可以使用 keySplines 设置时间/缓动属性,但是在我的示例中它不起作用:
SMIL is deprecated and not going to work on chrome anymore 我刚开始学习如何制作动画 svg,我偶然发现了这个声明。我不知道这是不是真的(我希
我使用 SVG SMIL 动画是因为我还没有找到另一种方法来制作曲线形状的动画。这种方法适用于除 iOS 浏览器之外的所有浏览器。 这是我的 SVG 代码: .st0{fill:rgba(
我试图在我的 SVG 中让两个动画相继运行。 这就是它们的写入方式。它们被写入一个组,里面有一些原语。我正在尝试让整个组旋转然后平移。 但是当我运行这个时,变换似乎在第一个动画结束时重置
上下文:我正在使用 SVG 制作信息图。我希望借助动画,尤其是通过链接动画,让文档变得栩栩如生。我已经熟悉 SVG,但最近才开始学习 SVG 动画。 由于 SMIL 已被弃用,我正在尝试用纯 SVG
我创建了一个包含超过 3000 条路径的怪物动画 SVG 文件。每个路径都使用声明性 SMIL 动画独立地进行动画处理。它在所有新浏览器中播放缓慢但精美,为 IE9 使用一点 js 回退。 (我会发布
我有一张布拉格机场航类目的地的 SVG map 。我想沿着通往这些机场中的每一个的路径制作一个圆圈。 获取代码here (对此感到抱歉,不适用于 jsfiddle)。 处理“飞行”动画的代码如下所示:
我正在尝试制作一个 SVG 图标,该图标在悬停时使用 SMIL 进行动画处理(好吧,我不在乎它是 SMIL 还是 CSS,我只是不想使用 JS)并且我已经走了很远但是我遇到了一个无法在网上找到答案甚至
过去我在 javascript 方面做过很多工作,包括一些 DOM 操作。从那里我了解到回流/重绘在某些情况下可能是一个很大的性能问题,并且通常应该限制在最低限度。例如,当添加一组 div 时,您应该
我需要我的 perl 脚本从 SMIL 文件中提取 jpeg。我看到在 linux 中执行此操作的唯一方法是使用以下命令。 xxd -c1 -p wapenc\?T\=mavodi-6-13b-1f-
SMIL(同步多媒体集成语言)最后一次更新是在 2008 年,有谁知道在同步多媒体文件时是否有更好的协议(protocol)可遵循? 最佳答案 SMIL 没有天然的竞争对手,因此任何其他解决方案都将依
我正在尝试确定如何有效地反转此 SVG 动画(使用 SMIL),它使用 animateMotion 和 path 上的 d 属性元素。我需要动画围绕形状逆时针运行。 当前动画可以查here相关代码如下
有谁知道流行浏览器中 SVG SMIL 动画支持的当前状态?看起来 Safari、Chrome 和 Opera 都支持它。 Firefox 在他们的开发页面中有关于添加了 SMIL 支持的令人困惑的报
我在 Safari 中遇到基本 SVG 动画的问题。 它通过仅显示没有动画的 SVG 优雅地失败了,但如果可能的话,我希望它也能在 Safari 中工作。 动画与找到的示例非常相似 here :
我正在尝试使用 SVG 为视频元素创建 UI。我正在寻找一个简单的解决方案来为控制栏设置动画,当鼠标在其中时(如 YouTube),我想从窗口底部升起。 这是我想做的:
我正在尝试使用 SMIL以动画方式将文本输入到嵌入在 SVG 中的字段中。我每晚在 Chrome 和支持 SMIL 的 Firefox 中尝试了以下代码,但没有效果:
我一直在看一篇关于 SVG 动画的文章。 Code: http://codepen.io/chriscoyier/pen/DpFfE 文章:http://css-tricks.com/svg-shap
我对使用 smil SVG 动画和使用 javascript/jquery otf 更改内容有一些疑问。 这是我已经尝试过的: HTML/XML:
我是一名优秀的程序员,十分优秀!