CSSカスタムプロパティを使用してCSSアニメーションを再生および一時停止する方法
CSSアニメーションの再生と一時停止:CSSカスタムプロパティを使用して細かい制御
この記事では、CSS @keyframes
アニメーションについて説明し、アニメーションを一時停止および制御する方法に焦点を当てています。 animation-play-state
プロパティを使用してJavaScriptと協力して制御することができますが、詳細がたくさんあります。 CSSカスタムプロパティを使用して、アニメーションの細かい制御を可能にする、より柔軟なセットアップ方法を紹介します。
アニメーションを一時停止することの重要性
CSS駆動型のスライドを開発するとき、私は興味深い現象に気づきました:ウィンドウにないアニメーションはまだ実行されています!これは私に考えさせます:これらの実行中のアニメーションはまだCPU/GPUリソースを消費しているので、ページのパフォーマンスに影響しますか?
DevToolsのパフォーマンスパネルは、「画面外」フレームのアニメーション消費を直接表示することはできませんが、スライドから離れて再び戻るときはアニメーションが一時停止しませんが、次の画面まで実行され続けます。
したがって、アニメーションがどのように一時停止されるかを研究することが重要です。これは以下に関連しています。
- パフォーマンス:不必要なリソース消費を避けてください。
- コントロール:アニメーションに対するユーザー制御を提供します。
- アクセシビリティ:一部のユーザーがアニメーションに敏感である可能性があることを考慮してください。
アニメーションを一時停止する基本的な方法
CSSでは、アニメーションを一時停止する唯一の方法は、 animation-play-state
プロパティを使用して、その価値を一時paused
ことです。
.paused { Animation-Play-State:一時停止。 }
JavaScriptでは、このプロパティはanimationPlayState
であり、設定方法は次のとおりです。
element.style.animationPlayState = 'Poused';
animationPlayState
の現在の値を読むことで、プレイ/一時停止の切り替えを作成できます。
const running = element.style.animationPlayState === 'running'; element.style.animationPlayState = running? 「一時停止」:「ランニング」;
アニメーションを一時停止するもう1つの方法は、 animation-duration
を0s
に設定することです。アニメーションは実際にはまだ実行されていますが、期間がゼロであるため、アクションは見られません。ただし、これは実際の一時停止ではありません。
アニメーションの直接削除( animation: none !important;
)も実際の一時停止ではありません。
データ属性とCSSを使用したカスタムプロパティ
データ属性( data-animation
など)をCSSセレクターとして使用し、CSSカスタム属性をアニメーション属性の値として使用します。
<div data-animation=""></div>
[データアニメーション] { アニメーション: var( - animn、なし) var( - animdur、1s) var( - animtf、linear) var( - animdel、0s) var( - アニック、無限) var( - animdir、代替) var( - animfm、なし) var( - animps、running); }
カスタムプロパティを通じて、アニメーションのすべての側面を制御できます。 CSSカスタムプロパティの利点は、CSSとJavaScriptで読み取り、設定できることであり、CSSコードの量を減らすことができることです。
アニメーション自体はクラスセレクターを使用し、 [data-animation]
セレクターの変数を更新します。
/*アニメーションクラス*/ .a-pulse { - アニムン:パルス; } .ASLIDE { -Animdur:3s; - アニムン:スライド; } /* keyframe*/ @KeyFrames Pulse { / * ... */ } @KeyFramesスライド{ / * ... */ }
例:チェックボックスのトリックを使用して、アニメーションを一時停止します
すべてのアニメーションの一時停止を制御するチェックボックスを作成します。
<input type="checkbox" id="data-animation-pause">
[data-alimation-ase]:checked〜 [data-animation] { -Animps:一時停止。 }
チェックボックスをクリックして、JavaScriptなしですべてのアニメーションを一時停止/再生します。
CSSのみのスライドショー
私は使用します<details></details>
タグは、アクティブなアニメーションautoplay
にスライドを自動的に切り替えるスライドを作成します。各スライドには独自のセカンダリアニメーションがあります。 --animps
属性はアニメーションの再生ステータスを制御し、 --img-animps
属性はセカンダリアニメーションの再生ステータスを制御します。
GPUの過負荷を防ぐために、理想的には、メインアニメーションはすべてのセカンダリアニメーションを一時停止する必要があります。 Chromeブラウザー(現在) @keyframes
アニメーションからCSSカスタムプロパティを更新できます。
メインアニメーション@keyframes
で--img-animps
プロパティを更新します:
@keyframes autoplay { / * ... */ 51%{-img-animps:一時停止} /*停止! */ / * ... */ }
他のブラウザと互換性があるため、初期値running
ために設定する必要があります。
prefers-reduced-motion
有効にします
prefers-reduced-motion
メディアクエリを使用して、ユーザーの好みに応答できます。
@media(reduced-motionを好む){ [data-animation = "代替"] { -Animdur:4s; - アニムン:不透明。 } / * ... */ }
JavaScriptを使用してアニメーションを一時停止します
JavaScriptを使用して、すべての[data-animation]
要素を繰り返し、 --animps
属性を切り替えることができます。
// ... JavaScriptコード...
IntersectionObserverを使用します
アニメーションを自動的に再生して一時停止するには、 IntersectionObserver
使用できます。
// ... JavaScriptコード...
スライドにオーディオを追加する(ボーナス)
オーディオタグを追加し、その再生を制御し、JavaScriptで一時停止します。
<audio src="your-audio.mp3"></audio>
// ... JavaScriptコード...
上記の方法により、CSSアニメーションの再生と一時停止を柔軟に制御し、ページのパフォーマンスとアクセシビリティを改善できます。
以上がCSSカスタムプロパティを使用してCSSアニメーションを再生および一時停止する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

今週のプラットフォームニュースのラウンドアップで、Chromeは、Web開発者のロード、アクセシビリティ仕様、およびBBCの動きのための新しい属性を導入します

これは私が初めてHTML要素を見ていることです。私はしばらくの間それを知っていましたが、まだスピンしていませんでした。かなりクールです

購入またはビルドは、テクノロジーの古典的な議論です。自分で物を構築することは、あなたのクレジットカードの請求書にはラインアイテムがないため、安価に感じるかもしれませんが

今週のラウンドアップ、タイポグラフィを検査するための便利なブックマークレットである。

しばらくの間、iTunesはポッドキャストの大きな犬だったので、「ポッドキャストにサブスクライブ」をリンクした場合:

サイトの訪問者と使用データを追跡するのに役立つ分析プラットフォームがたくさんあります。おそらく、特にGoogleアナリティクスが広く使用されています
