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のスケジュールタスクが正常に実行できない原因の分析と解決

推薦する

HTML における要素の水平および垂直中央揃えに関する議論

ページをデザインするときには、ログイン ウィンドウを中央に配置するなど、DIV を中央に配置し、ペー...

MySQL 8.0.25 のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.25の最新のダウンロードとインストールのチュートリアルは参考になります。具体的な...

React、Angular、Vueの3つの主要なフロントエンド技術の詳細説明

目次1. 反応する基本的な使い方注目すべき機能クラスコンポーネント仮想DOMライフサイクルメソッドJ...

Linux での i3 ウィンドウ マネージャーの設定と使用に関するチュートリアル

この記事では、Fedora 28 に i3 をインストールして簡単に設定する方法を説明します。 1....

一般的な HBase 運用および保守ツール 10 個の概要

概要: HBase には、ユーザーに管理、分析、修復、デバッグ機能を提供するための多くの操作および保...

時間のかかるDockerエラーのトラブルシューティングプロセス記録

目次起源環境情報トラブルシューティングのプロセス要約する起源顧客は CentOS をベースにしたカス...

Tableとdivの簡単な紹介と使い方

ウェブフロントエンド1学生証名前性別年01張三男20 02李思女性21総人数60フォームのコンポーネ...

HTMLは入力完了を検出する機能を実装する

入力が進行中かどうかを検出するには、「onInput(event)」を使用しますコンテンツが変更され...

プライベートレジストリ内の画像を照会または取得する方法

Dockerはプライベートレジストリ内のイメージを照会または取得するために、 docker 検索 1...

Vue を使用してパブリック アカウントの Web ページを開発する方法

目次プロジェクトの背景始めるvue-cliでプロジェクトを作成するモバイル適応についてnormali...

Web デザイン スキル: iframe の適応高さの問題

おそらく、この問題にまだ遭遇していない人もいるでしょうから、まずは適応高さとは何かを説明しましょう。...

Mysql 8.0 のインストールとパスワードのリセットの問題

Mysql 8.0 のインストールの問題とパスワードのリセット1: MySqlをダウンロードする公式...

Javascript 仮想 DOM の詳細な説明

目次仮想DOMとは何ですか?なぜ仮想DOMが必要なのでしょうか?仮想 DOM はどのようにして実際の...

Ubuntu20.04 VNCのインストールと設定の実装

VNC はリモート デスクトップ プロトコルです。 VNC を使用して Ubuntu 20.04 を...

Docker での WSL の構成と変更の問題について

https://docs.microsoft.com/ja-jp/windows/wsl/wsl-...