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

推薦する

単一テーブルのMySQLバックアップとリストアに関する簡単な説明

A. MySQLバックアップツールxtrabackupのインストール1. Percona 公式 xt...

JavaScript でグレイウルフのポットビーティングゲームを実装

1. プロジェクト文書 2. ページレイアウトにHTMLとCSSを使用するHTML部分 <di...

LinuxでのMySQLのインストール手順

1. mysql tar ファイルをダウンロードします。参考: 2. インストールパッケージがあるデ...

Alibaba Cloud CentOS7 サーバーの nginx 構成と FAQ の分析

序文:この記事は、jackyzm のブログ https://www.cnblogs.com/jack...

CSS 3D からソースコードによる空間座標軸へ

かつて、サイコロを振るゲームについて話しました。その時は、steps 属性 + スプライト画像を使用...

CSS における要素の表示モード

CSS では、要素タグは、要素の表示モードの違いに応じて、インラインレベル要素とブロックレベル要素の...

Docker環境にJenkinsコンテナをインストールする詳細なチュートリアル

推奨される Docker 学習教材: https://www.runoob.com/docker/d...

vue-qr を使用して Vue の QR コードを生成する方法について深く理解する

目次npm ダウンロードステップ(1)輸入(2)vue-qrパラメータ例要約する「QRコード」の英語...

MySQL が group by をサポートしない場合の解決策の概要

MySQL 5.7.x の最新バージョンをダウンロードしてインストールしました。デフォルトでは、on...

Vueは物流タイムライン効果を実現します

この記事では、物流タイムライン効果を実現するためのVueの具体的なコードを例として紹介します。具体的...

Linux で Nginx ロード バランシングを使用して複数の Tomcat を構成する方法

Linux に nginx と複数の tomcat をインストールする方法はここでは紹介しません。不...

チェックボックスとラジオボタンの配置を実装する方法

ブラウザによって動作が異なるだけでなく、フォントやテキスト サイズによっても動作が異なります。フォー...

WindowsにOpenSSHをインストールし、SSHキーを生成してLinuxサーバーにログインします。

SSH の正式名称は Secure SHell です。 SSH を使用すると、送信されるすべてのデ...

CentOS での samba フォルダ共有サーバー構成の詳細な説明

1. はじめに最近、CentOS での開発には多くの不便があることがわかりました。Windows/M...

Tomcat でよく使われるフィルターの詳細な説明

目次1. クロスドメインフィルタ CorsFilter 1.1 設定例1.2 パラメータの説明2. ...