ホームページ >ウェブフロントエンド >CSSチュートリアル >非推奨の SMIL SVG アニメーションを CSS または Web アニメーションに置き換える方法は?
はじめに
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 アニメーションを維持するには、以下の回答で説明されている SMIL ポリフィルを使用することをお勧めします。
以上が非推奨の SMIL SVG アニメーションを CSS または Web アニメーションに置き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。