「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 非推奨の SMIL アニメーションを CSS または Web アニメーションに置き換えるにはどうすればよいですか?

非推奨の SMIL アニメーションを CSS または Web アニメーションに置き換えるにはどうすればよいですか?

2024 年 11 月 3 日に公開
ブラウズ:481

How Can I Replace Deprecated SMIL Animations with CSS or Web Animations?

ホバー効果: CSS アニメーションまたは Web アニメーション

問題:
SMIL のアニメーション タグは非推奨になっており、CSS ホバー トランジションは

解決策:
設定されたタグを削除し、CSS を element_tpl:hover pseudo-class:

.element_tpl:hover {
    stroke-opacity: 0.5;
}

変更時のスケーリング効果

問題:
コミットされた変更時に要素をアニメーション化して数回スケーリングします。

解決策:
次のオプションを検討します:

  1. CSS アニメーション: CSS キーフレームを使用してスケーリングを実現します:
@keyframes scale-animation {
    0% { transform: scale(1); }
    50% { transform: scale(1.12); }
    100% { transform: scale(1); }
}

次にアニメーションを要素に適用します:

.element_tpl {
    animation: scale-animation 0.5s infinite alternate;
}
  1. Web アニメーション: Web アニメーション API を使用してスケーリングをプログラムで制御します:
// Create a new animation
const animation = document.timeline.addAnimation();

// Define keyframes
const keyframes = [
    { transform: 'scale(1)', offset: 0 },
    { transform: 'scale(1.12)', offset: 0.5 },
    { transform: 'scale(1)', offset: 1 }
];

// Apply keyframes to the animation
animation.effect = keyframes;

// Target the element
animation.target = document.querySelector('.element_tpl');

クリック時に拡大および縮小

問題:
要素をアニメーション化して拡大および縮小します

解決策:

  1. CSS トランジション: CSS トランジションを使用して、マウスダウン イベントとマウスアップ イベントでスケール変更をトリガーします。
.element_tpl {
    transition: transform 0.2s;
}

.element_tpl:active {
    transform: scale(1.1);
}
  1. Web アニメーション: Web アニメーション API を使用してクリック イベントを処理し、それに応じて要素をスケールします:
// Add event listener
document.querySelector('.element_tpl').addEventListener('click', (event) => {

    // Create a new animation
    const animation = document.timeline.addAnimation();

    // Define keyframes
    const keyframes = [
        { transform: 'scale(1)', offset: 0 },
        { transform: 'scale(1.1)', offset: 0.2 },
        { transform: 'scale(1)', offset: 0.4 },
    ];

    // Apply keyframes to the animation
    animation.effect = keyframes;

    // Target the element
    animation.target = event.target;
});

SMIL アニメーションの保存

問題:
SMIL アニメーションを CSS または Web アニメーションに転送します。

解決策:
Eric Willigers によって作成された SMIL ポリフィルを使用します: https://github.com/ericwilligers/svg-animation。このポリフィルは SMIL アニメーションを Web アニメーションに変換し、それらを実装する代替方法を提供します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3