アニメーションの再生と一時停止を制御するための 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 プロジェクトを展開するプロセス全体

推薦する

Linux での MySQL 5.6.27 インストール チュートリアル

この記事では、LinuxでのMySQL 5.6.27のインストールチュートリアルを参考までに紹介しま...

win10 での mysql 8.0.16 winx64 インストールの最新グラフィック チュートリアル

このデータベースをダウンロードするには、多くの時間とトラフィックがかかります。踏み込んだ落とし穴で時...

Vue で Openlayer を使用して読み込みアニメーション効果を実現する

注意: スコープアニメーションは使用できません。 ! ! ! GIF経由 <テンプレート>...

Docker で Redis クラスターを素早く構築する方法の例

Redis クラスターとはRedis クラスターは、R​​edis が提供する分散データベース ソリ...

画像マーキー効果を実現するネイティブJS

今日は、ネイティブ JS で実装された画像マーキー効果を紹介します。効果は次のとおりです。 実装され...

Node.js の非同期イテレータの詳細な説明

目次序文非同期イテレータとは何ですか?非同期イテレータストリームとしてページング機能を備えたAPIの...

大規模な Vue.js プロジェクトの構築と維持のための 10 のベスト プラクティス

目次1. スロットを使用してコンポーネントを理解しやすくし、より強力にする2. Vuexストアを正し...

html+cssレイアウトの3つの方法(ナチュラルレイアウト/フローレイアウト/ポジショニングレイアウト)

1. 自然なレイアウト<br />レイアウトは変更せずに自動的に左揃えになります。 2....

Bootstrap 3.0 学習ノート CSS関連補足

この記事の主な内容は次のとおりです。 1. ブラウザのサポート2. 画像3. レスポンシブツール4....

Ubuntuにopencvをインストールする正しい方法の詳細な説明

この記事ではUbuntuでC++インターフェースを使用してopencvをインストールする方法について...

mysql バックアップ スクリプトを作成し、7 日間保存します。

スクリプトの要件: MySQL データベースを毎日バックアップし、スクリプトを 7 日間保存します。...

MySQL ロック(テーブルロック、行ロック、共有ロック、排他ロック、ギャップロック)の詳細な説明

現実世界では、鍵は外の世界から身を隠したいときに使用するツールです。コンピュータでは、複数のプロセス...

HTML でフレームセット タグを使用するチュートリアル

フレームセット ページは通常の Web ページとは多少異なります。依然として <HTML>...

Linux カーネルプログラミングにおけるコンテナの of() 関数の紹介

序文Linux カーネルプログラミングでは、マクロ関数 container_of(ptr, type...

Vue3ライフサイクル関数とメソッドの詳細な説明

1. 概要いわゆるライフサイクル機能とは、特定の条件下で自動的にトリガーされる機能です。 2. VU...