简介
由于SMIL(同步)的弃用SVG(可扩展矢量图形)中的多媒体集成语言)动画,必须找到使用 CSS 或 Web 动画的替代方法。此转换有助于提高现代浏览器的性能和兼容性。
替换悬停效果
添加CSS悬停规则:
<code class="css">.element_tpl:hover { stroke-opacity: 0.5; }</code>
替换缩放动画
使用CSS进行缩放:
<code class="css">.element_tpl { transform: scale(1); } .element_tpl:active { transform: scale(1.1); }</code>
替换点击动画
使用 CSS 关键帧在单击元素时设置过渡动画:
<code class="css">@keyframes click-anim { from { transform: scale(1); } to { transform: scale(1.15); } } .element_tpl { animation: click-anim 0.2s forwards; animation-delay: 0.2s; }</code>
工作示例
<code class="html"><g id="switcher" cursor="pointer" stroke-width="0.15"> <g transform="scale(1,1.375)"> <g> <rect x="-0.5" y="-0.5" width="1" height="1" stroke="white" pointer-events="none"/> <rect x="-0.5" y="-0.5" width="1" height="1" fill="white"> <line x1="0" y1="-0.25" x2="0" y2="0.25" stroke-width="0.17" stroke-linecap="round" pointer-events="none"/> </rect> </g> </g> </g></code>
<code class="css">#switcher { transform: scale(1); } #switcher:hover { stroke-opacity: 0.5; } #switcher:active { transform: scale(1.1); } @keyframes click-anim { from { transform: scale(1); } to { transform: scale(1.15); } } #switcher:active { animation: click-anim 0.2s forwards; animation-delay: 0.2s; }</code>
保存现有动画
提供的链接包含比问题中的示例更复杂的动画。将它们转换为 CSS / Web 动画将需要更多的努力和自定义代码。建议使用下面答案中提到的 SMIL polyfill 来维护现有的 SMIL 动画,同时过渡到现代浏览器支持。
以上是如何用 CSS 或 Web 动画替换已弃用的 SMIL SVG 动画?的详细内容。更多信息请关注PHP中文网其他相关文章!