要素を削除せずに CSS3 アニメーションを効率的に再起動する方法

Patricia Arquette
リリース: 2024-11-10 16:51:02
オリジナル
502 人が閲覧しました

How to Efficiently Restart CSS3 Animations Without Element Removal?

CSS3 アニメーションの再起動: より効率的なテクニック

CSS3 アニメーションを使用する場合、イベント後にアニメーションを再起動することが必要になることがよくあります。クリックなど。ただし、影響を受ける要素のスケールやその他のプロパティを直接設定すると問題が発生し、割り当ての遅延や複雑な連鎖が発生する可能性があります。

要素削除のトリック

提案されている 1 つの型破りな方法は次のとおりです。アニメーション要素をドキュメントから削除し、複製バージョンを再挿入します。効果的にアニメーションを再起動しますが、不必要な複雑さと潜在的なパフォーマンスの問題が発生します。

Reflow to the Rescue

よりエレガントで効率的な解決策は、リフローをトリガーすることです。 。リフローは、DOM または CSS の変更に応じてブラウザーが要素のレイアウトを再計算するプロセスです。この動作を利用すると、要素を削除せずにアニメーションを効果的にリセットできます。

次の JavaScript コードは、このアプローチを示しています。

function reset_animation() {
  var el = document.getElementById('animated');
  el.style.animation = 'none';
  el.offsetHeight; /* trigger reflow */
  el.style.animation = null; 
}
ログイン後にコピー

offsetHeight プロパティが使用されます。リフローをトリガーし、ブラウザにレイアウトの再計算とアニメーション設定の再適用を強制します。これにより、遅延や面倒な連鎖を発生させることなく、効果的にアニメーションがすぐに再開されます。

この手法は、幅広い CSS3 アニメーションに適用でき、Web アプリケーションやフレームワークに簡単に統合できます。これは、不要な副作用を引き起こすことなくアニメーションを再開するためのシンプルかつ効果的な方法を提供します。

以上が要素を削除せずに CSS3 アニメーションを効率的に再起動する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート