CSS3はアニメーション効果を実現するためにvar()とcalc()関数を使用する。

CSS3はアニメーション効果を実現するためにvar()とcalc()関数を使用する。

ここに画像の説明を挿入

ナレッジポイントをプレビューします。

  • アニメーションフレーム
  • 背景グラデーション
  • var() と calc() の使用
  • フレックスレイアウトシナリオ

始める:

HTML 構造を作成します。

<セクション>
    <div class="読み込み中">
      <div class="text"></div>
      <div class="時計" style="--i:1;"></div>
      <div class="時計" style="--i:2;"></div>
      <div class="clock" style="--i:3;"></div>
      <div class="時計" style="--i:4;"></div>
      <div class="clock" style="--i:5;"></div>
      <div class="clock" style="--i:6;"></div>
      <div class="clock" style="--i:7;"></div>
      <div class="clock" style="--i:8;"></div>
      <div class="clock" style="--i:9;"></div>
      <div class="clock" style="--i:10;"></div>
      <div class="clock" style="--i:11;"></div>
      <div class="clock" style="--i:12;"></div>
      <div class="clock" style="--i:13;"></div>
      <div class="clock" style="--i:14;"></div>
      <div class="clock" style="--i:15;"></div>
      <div class="clock" style="--i:16;"></div>
      <div class="clock" style="--i:17;"></div>
      <div class="clock" style="--i:18;"></div>
      <div class="clock" style="--i:19;"></div>
      <div class="clock" style="--i:20;"></div>
    </div>
  </セクション>

円を描いて回転させる必要があるため、円形ボックスを形成するために 20 個の小さなボックスが必要であり、その背後にある値を取得できるように style: --i :num を追加します。

ボックスを中央に配置する:

*{
      マージン: 0;
      パディング: 0;
      ボックスのサイズ: 境界線ボックス;
    }
  セクション{
    ディスプレイ:フレックス;
    コンテンツの中央揃え: 中央;
    アイテムの位置を中央揃えにします。
    最小高さ: 100vh;
    背景: -webkit-linear-gradient(左上、ピンク、オレンジ);
  }

フレックス レイアウトを使用してボックスを中央に配置します。
背景: -webkit-linear-gradient(左上、ピンク、オレンジ);
グラデーション背景です。

読み込みボックスのサイズを設定します。

.読み込み中{
    位置: 相対的;
    幅: 250ピクセル;
    高さ: 250px;
  }

テキストと円ボックスを読み込みボックス内に配置します。

.loading .text::after{
    コンテンツ: "読み込み中";
    位置: 絶対;
    上位: 50%;
    左: 50%;
    変換: translate(-50%, -50%);
    色: #000;
    フォントサイズ: 24px;
    フォントの太さ:600;
    高さ: 66px;
    幅: 130ピクセル;
    テキスト配置: 中央;
    行の高さ: 66px;
    遷移: すべて .5 秒;
    文字間隔: 2px;
  }
.loading .clock{
    位置:絶対;
    左: 50%;
    高さ: 25px;
    幅: 8px;
    背景色:赤;
    変換: rotate(calc(18deg * var(--i)));
    変換の原点: 0 125px;
    アニメーション: クロック 1.2 秒 線形無限;
    アニメーション遅延: calc(0.06s * var(--i));
  }

var (–i) を使用すると、タグ スタイルで i の num 値を取得できます。
度数の計算は 360 / 20 = 18 度です。円形のボックスが 20 個あるため、それぞれが 18 度回転し、その後の回転が重ね合わされてこの効果が得られます。 しかし、回転位置を変更しないと、円ボックスの中心の周りを直接回転し、分散せず、直接円を形成します。

ここに画像の説明を挿入

このようにして、円形ボックスの回転配置が実現されます。

アニメーションの定義、アニメーションの追加

@keyframes 時計 {
    0%、50%{
      背景色:ピンク;
      ボックスシャドウ: なし;
    }
    50.1%、100%{
      背景色: 赤;
      ボックスシャドウ: 0 0 5px 赤、
                  0 0 10px 赤、
                  0 0 25px 赤、
                  0 0 40px 赤;
    }
  }
変換の原点: 0 125px;
    アニメーション: クロック 1.2 秒 線形無限;
    アニメーション遅延: calc(0.06s * var(--i));

ボックスシャドウの場合は、複数の値を設定して、より目立つようにすることができます。

アニメーションを停止するホバーイベントを追加する

.text:hover::after{ をロード中
    内容: "終了しました";
    変換: translate(-50%, -50%) translateY(-8px) scale(1.3);
    色: 赤;
  }
  .loading:hover .clock{
    アニメーション再生状態: 一時停止;
  }

CSS3 の var() 関数と calc() 関数を使用してアニメーション効果を実現する方法についての記事はこれで終わりです。CSS アニメーション効果に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  フロントエンドAIカットのコツ(体験談)

>>:  MySQLのスケジュールタスクが正常に実行できない原因の分析と解決

推薦する

TypeScript名前空間の説明

目次1. 定義と使用1.1 定義1.2 使用2. 複数のファイルに分割する3. エイリアス序文: T...

MYSQL インストールの解凍バージョンと発生したエラーと解決策

1 インストールMYSQL 公式サイトから対応する解凍バージョンをダウンロードし、必要なディレクトリ...

ubuntu14.04 に jdk1.8 をインストールするチュートリアル

1. jdkダウンロードアドレスをダウンロードする我下載的是jdk-8u221-linux-x64....

MySQL の繰り返し読み取りレベルでファントム読み取りを解決できますか?

導入データベース理論についてさらに学んでいくうちに、さまざまな分離レベルによって起こり得る問題につい...

Vueの監視プロパティの詳細

目次1.watchは一般的なデータ(数値、文字列、ブール値)の変更を監視します。 1. 数値2. 文...

Windows オペレーティング システムでポートの使用状況を照会およびクリアするプログラム

Windowsオペレーティングシステムでは、ポートの占有状況を照会し、ポートの占有状況をクリアするプ...

nginxのアップストリーム設定と機能の詳細な説明

設定例 アップストリームバックエンド{ サーバー backend1.example.com 重み=5...

SQL 集計、グループ化、並べ替え

目次1. 集計クエリ1. COUNT関数2. SUM関数3. AVG関数4. MAX関数とMIN関数...

HTML構造化実装方法

DIV+css構造 CSSレイアウトを学んでいますか?まだ純粋な CSS レイアウトを完全に習得でき...

Tomcatはスレッドプールを使用してリモート同時リクエストを処理します。

Tomcatが同時リクエストを処理する方法を理解することで、スレッドプール、ロック、キュー、および...

ブラウザの互換モードでボタン内のテキストが垂直方向に中央揃えにならない問題について簡単に説明します。

XML/HTML コードコンテンツをクリップボードにコピー<ボタンスタイル= "カ...

Ubuntu で VIM を C++ 開発エディタとして設定する

1. 設定ファイルをユーザー環境にコピーし、新しい.vimフォルダを作成し、バンドルサブフォルダを作...

CSS3 フィルターを使用して PNG 画像の色を変更するサンプル コード

この方法は、CSS3のdrop-shadow filterを使用して、png画像の不透明部分に任意の...