廃止予定の SMIL SVG アニメーションを CSS または Web アニメーションに置き換えるにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-27 07:17:29
オリジナル
793 人が閲覧しました

How to Replace Deprecating SMIL SVG Animations with CSS or Web Animations?

SMIL SVG アニメーションの非推奨と CSS または Web アニメーションによる置き換え

SMIL SVG アニメーションの非推奨により、CSS または Web アニメーションを使用した代替アプローチが使用されます。最新のブラウザでのパフォーマンスと互換性を向上させるために、Web アニメーションをお勧めします。ここでは、前述の SMIL アニメーションを変換する方法を説明します。

1.マウスオーバー時のホバー効果

同じ効果を実現するには、SMIL アニメーション タグを CSS ホバー疑似クラスに置き換えます。

/* Original SMIL */
<set attributeName="stroke-opacity" .../>
<set attributeName="stroke-opacity" .../>
/* CSS Equivalent */
.element_tpl:hover {
  stroke-opacity: 0.5;
}
ログイン後にコピー

2.変更がコミットされた後にアニメーションをスケールする

animate タグを使用せずにこの効果を実装するには、テンプレートで初期スケール プロパティを設定し、CSS トランジションを使用してスケーリングをアニメーション化します。

/* Original SMIL */
<animateTransform .../>
/* CSS Equivalent */
@media (all) {
  .element_tpl {
    transform: scale(1, 1.375);
    transition: transform 0.5s ease-in-out;
  }
  .element_tpl:hover {
    transform: scale(1.12, 1.375);
  }
}
ログイン後にコピー

3.クリック時のスケールアップとスケールダウン

この効果には、CSS トランジションと JavaScript イベント ハンドラーの組み合わせを使用できます。

/* Original SMIL */
<animateTransform .../>
<animateTransform .../>
/* CSS Equivalent */
@media (all) {
  .element_tpl {
    transition: transform 0.2s ease-in-out;
  }
  .element_tpl:active {
    transform: scale(1.1);
  }
}
/* JavaScript Event Handlers */
const element = document.querySelector('.element_tpl');
element.addEventListener('mousedown', () => { element.classList.add('active'); });
element.addEventListener('mouseup', () => { element.classList.remove('active'); });
ログイン後にコピー

作業例

これは変換された CSS 効果を示す実際の例: https://jsfiddle.net/7e2jeet0/

以上が廃止予定の SMIL SVG アニメーションを CSS または Web アニメーションに置き換えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!