アニメーションの再生と一時停止を制御するための CSS のヒント (非常に実用的)

アニメーションの再生と一時停止を制御するための CSS のヒント (非常に実用的)

今日は、CSS を使用してアニメーションの再生と一時停止を制御する非常に簡単なトリックを紹介します。 適切に使用すれば、多くの実用的なシナリオに適用できます。

例を見てみましょう。Codepen を閲覧中にこの例を見つけました。非常に興味深いです。

この例、CodePen: https://codepen.io/mikegolus/pen/jJzRwJ

上記のプロセス全体は CSS によって完了します。上記の UI 効果のいくつかを実現するために CSS を使用する方法については後ほど説明します。この記事では主に、CSS のみを使用してアニメーションの進行、一時停止、開始を制御する方法について説明します。

解体と分析の要件

上記のアニメーション コントロールによって実現される効果は次のとおりです。

  1. ページがレンダリングされた後、何も操作しないとアニメーションは開始されません。アニメーションは、マウスが要素をclickときにのみ開始され、要素の:active疑似クラス効果がトリガーされます。
  2. アニメーションの途中でマウスのクリックを止めると、アニメーションは停止します。
  3. 要素をもう一度クリックすると、前のフレームが終了した状態からアニメーションが続行されます。
  4. アニメーションが終了した場合、もう一度クリックしてもアニメーションは再生されず、アニメーションの状態はアニメーションの最後のフレームのままになります。

ニーズの解決

複雑に思えるかもしれませんが、実際には、主に疑似クラス:activeとアニメーション再生状態animation-play-stateの助けを借りて、実装するのは非常に簡単です。

動いているボールを例に挙げてみましょう。ボールは左から右へ動きます。

<div></div>
div {
    マージン: 50px 自動;
    幅: 100ピクセル;
    高さ: 100px;
    背景: #000;
    アニメーション: 1 秒線形移動;
    アニメーション塗りつぶしモード: forwards;
}

@keyframes 移動 {
    100% {
        変換: translate(200px, 0) rotate(180deg);
    }
} 

次に、簡単な変換を行います。アニメーションのデフォルトの状態は一時停止です。

div {
    マージン: 50px 自動;
    幅: 100ピクセル;
    高さ: 100px;
    背景: #000;
    アニメーション: 1 秒線形移動;
    アニメーション塗りつぶしモード: forwards;
+ アニメーション再生状態: 一時停止;
}

アニメーションはクリックされたときにのみ実行されます。

body:アクティブdiv {
    アニメーション再生状態: 実行中;
}

効果を見てみましょう。クリック プロセスをわかりやすくするために、クリック プロセス中の背景色も変更しました (背景色の変化は、マウスが現在押されていることを示します)。

CodePen デモ: https://codepen.io/Chokcoco/pen/XGvwjL

総括する

実は、全体のプロセスは非常に簡単です。このメソッドを理解したら、任意のアニメーションに追加できます。同様のデモを次に示します。

CodePen デモ: https://codepen.io/Chokcoco/pen/ZPgxwy

とても便利なちょっとしたコツ、今すぐ手に入れましょう。

これで、CSS でアニメーションの再生と一時停止を制御するヒント (非常に実用的) に関するこの記事は終了です。CSS でアニメーションの再生と一時停止を制御することに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  MySQL が my.cnf を読み込む順序の詳細

>>:  IDEA が docker を統合して springboot プロジェクトを展開するプロセス全体

推薦する

Docker Compose を使用して Confluence を構築するチュートリアル

この記事は「Attribution 4.0 International (CC BY 4.0)」ライ...

VMware で VMware ツールをインストールしてもインストール ファイルが表示されない問題を解決する方法

VMware ツールは VMware の使用に非常に便利です。そのため、VMware ツールをインス...

Linux のロード vmlinux デバッグ

gdb を使用してカーネル シンボルをロードする arm-eabi-gdb 出力/ターゲット/製品/...

Vue で eslint 検出をオフにする方法 (複数の方法)

目次1. 問題の説明2. 問題解決1. 問題の説明Vue プロジェクトを開発する場合、作成時に誤って...

HTML iframe 使用状況の概要の収集

Iframe 使用状況の詳細な分析<iframe frameborder=0 width=17...

Nginx でバージョン番号を隠したり偽造したりする方法

1. デフォルトでアクセスするには、curl コマンドを使用します。 # curl -I http:...

Linux CDの意味と使い方

Linux CD とはどういう意味ですか? Linux では、cd はディレクトリの変更を意味します...

MySQL デッドロック ルーチン: 一意のインデックスの下でのバッチ挿入順序の不一致

序文デッドロックの本質はリソースの競合です。バッチ挿入の順序が一貫していないと、デッドロックに陥りや...

Dockerコンテナのセルフスタートを実装する方法

コンテナの自動起動Docker は、コンテナが終了したとき、または Docker が再起動されたとき...

Linux 上で Docker コンテナを作成、一覧表示、削除する方法の概要

1. Dockerコンテナを起動する以下のコマンドを使用して新しい Docker コンテナを起動しま...

CSSに基づいてマウス入力の方向を決定する

以前、フロントエンド技術グループに所属していたとき、グループのメンバーが面接中に問題に遭遇したと言っ...

Nginx tp3.2.3 404 問題の解決

最近、Apache を nginx に変更しました。TP プロジェクトを実行に移すと、404 エラー...

CSSはインラインブロックのずれの問題を解決します

もうナンセンスじゃない、郵便番号HTML部分 <div class="positio...

Dockerイメージ送信コマンドcommitの動作原理と使い方の詳細な説明

ローカルでコンテナを作成した後、このコンテナに基づいてローカル イメージを作成し、このイメージを D...

フラットスタイルを使用してウェブサイトをデザインする方法

フラットなウェブサイト構造の本質はシンプルさです。コンテンツの重要なポイントを強調し、ページの装飾効...