CSS で美しい時計アニメーション効果を実装するためのサンプルコード

CSS で美しい時計アニメーション効果を実装するためのサンプルコード

ここに画像の説明を挿入

仕事を探しています!!!

事前準備:

まず、このアニメーションは、以前のローディングアニメーションとクールなローディングアニメーションに基づいて作成されています。アイデアは同じですが、このアニメーションでは革新が行われました。

プレビューの知識ポイント:

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

始める

コアコード分析

変換: rotate(calc(30deg * var(--i)));
        変換の原点: 0 250px;
        アニメーション: 5 秒間、直線的に無限回転します。
        アニメーション遅延: calc(0.42s * var(--i));

HTML 上に構築されたスタイルに従って、対応する各 i 値を取得し、各瞬間のボックスの回転角度を計算します。同時に、初期の回転ポイントを変更します。そうしないと、各ボックスは中心の周りを回転して円になります。

考え方は読み込みと同じですが、今回はサイズ比が拡大されています。

ここに画像の説明を挿入

HTML コードの構築:

<div class="box">
            <div class="color" style="--i:1">1</div>
            <div class="color" style="--i:2">2</div>
            <div class="color" style="--i:3">3</div>
            <div class="color" style="--i:4"​​>4</div>
            <div class="color" style="--i:5">5</div>
            <div class="color" style="--i:6">6</div>
            <div class="color" style="--i:7">7</div>
            <div class="color" style="--i:8">8</div>
            <div class="color" style="--i:9">9</div>
            <div class="color" style="--i:10">10</div>
            <div class="color" style="--i:11">11</div>
            <div class="color" style="--i:12">12</div>
            <div class="時間"></div>
            <div class="mintues"></div>
        </div>

コードが少ない:

* {
  マージン: 0px;
  パディング: 0px;
  ボックスのサイズ: 境界線ボックス;
}

体 {
  背景: -webkit-linear-gradient(左上、ピンク、rgb(90, 83, 83));
  ディスプレイ: フレックス;
  最小高さ: 100vh;
  コンテンツの中央揃え: 中央;
  アイテムの位置を中央揃えにします。

  セクション {
    高さ: 500px;
    幅: 500ピクセル;
    。箱 {
      位置: 相対的;
      高さ: 500px;
      幅: 500ピクセル;
      ディスプレイ: フレックス;
      コンテンツの中央揃え: 中央;
      アイテムの位置を中央揃えにします。
      境界線: 5px 実線 #e2adb6;
      境界線の半径: 50%;
      // 境界線: 2px 実線の赤;
      &:hover .color {
        アニメーション再生状態: 一時停止;
      }

      &::後 {
        コンテンツ: "";
        表示: ブロック;
        高さ: 25px;
        幅: 25px;
        背景色: #000;
        zインデックス: 4;
        境界線の半径: 50%;
      }

      @keyframes 回転 {
        0%、
        50% {
          テキストシャドウ: なし;
          色: #000;
          変換: rotate(calc(30deg * var(--i))) scale(1);
        }

        50.1%、
        100% {
          テキストシャドウ: 0 0 10px #000,
            0 0 15px #000;
          色: #fff;
          変換: rotate(calc(30deg * var(--i))) scale(1.01);
        }
      }

      。色 {
        位置: 絶対;
        上: 0;
        色: #f2f2f2;
        不透明度: .6;
        フォントサイズ: 20px;
        変換: rotate(calc(30deg * var(--i)));
        変換の原点: 0 250px;
        行の高さ: 50px;
        アニメーション: 5 秒間、直線的に無限回転します。
        アニメーション遅延: calc(0.42s * var(--i));
      }

      @キーフレーム変更1 {
        0% {
          変換: translateY(-50%) 回転(0deg);
          変換の原点: 0 100px;
        }

        100% {
          変換: translateY(-50%) 回転(360度);
          変換の原点: 0 100px;
        }
      }

      @キーフレーム変更2 {
        0% {
          変換: translateY(-50%) 回転(-30deg) 回転(0deg);
          変換の原点: 0 150px;
        }

        100% {
          変換: translateY(-50%) 回転(-30度) 回転(360度);
          変換の原点: 0 150px;
        }
      }

      .時間{
        位置: 絶対;
        上位: 40%
        幅: 5px;
        変換: translateY(-50%);
        高さ: 100px;
        背景色: #f2f2f2;
        アニメーション: change1 24秒 線形無限;

        &::後 {
          コンテンツ: "";
          位置: 絶対;
          上: 0;
          左: -10px;
          幅: 20px;
          高さ: 20px;
          下境界線: 5px 実線 #f2f2f2;
          右境界線: 5px 実線 #f2f2f2;
          変換: 回転(-135度);
        }
      }

      .分{
        位置: 絶対;
        上位: 36%
        幅: 3px;
        高さ: 150px;
        背景色: #000;
        変換: translateY(-50%) 回転(-30deg);
        変換の原点: 0 150px;
        アニメーション: change2 2s 線形無限;

        &::後 {
          コンテンツ: "";
          位置: 絶対;
          上: 0;
          左: -10px;
          // 表示: ブロック;
          幅: 20px;
          高さ: 20px;
          下境界線: 3px 実線 #000;
          右境界線: 3px 実線 #000;
          変換: 回転(-135度);
        }
      }
    }
  }
}

これで、CSS で美しい時計アニメーション効果を実装するためのサンプル コードに関するこの記事は終了です。CSS 時計アニメーションに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  ウィンドウの中央にブロック要素の位置を設定する方法

>>:  Linux でファイル権限を変更する chmod コマンドの詳細な分析

推薦する

MySQLデータベースでコマンドを自動補完する3つの方法

注意: 3 番目の方法は XSell でのみ使用され、finalsell では使用できません。方法1...

CentOS システムのディスク パーティションを拡張する方法

問題/障害/シナリオ/要件Eve-ng の仮想マシン OVA のハードディスクは 38G しかないた...

デザイン理論: なぜ私たちは間違った場所を見ているのでしょうか?

数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...

MySQL における一般的なランキングの問題をいくつかまとめます

序文:一部のアプリケーション シナリオでは、成績や年齢によるランキングなど、ランキングの問題が発生す...

Vue.js での $emit の使用に関する詳細な説明

1. 親コンポーネントは props を使用して子コンポーネントにデータを渡すことができます。 2....

JavaScript parseInt() と Number() の違いのケーススタディ

学習目標: parseInt() と Number() という 2 つの関数は、文字列をデータ型に変...

HTML でのアンカーポイントの適用

アンカーポイントの設定<a name="トップ"></a>...

DockerコンテナにNFS共有ディレクトリをマウントする実装

以前、https://www.jb51.net/article/205922.htm で、Docke...

MySQL 8.0.15 のインストールと設定のグラフィックチュートリアルと Linux でのパスワード変更

このブログは、MySQL8.0.15 を正常にインストールしたことを思い出すために書きました。以前は...

tbodyタグの魔法はテーブルコンテンツの表示を高速化します

他の人のウェブページを保存して見たことがあると思いますが、特にdwで開くと、多くのウェブページに&l...

CSS3のtransform属性で実装される4つの機能

CSS3 では、transform 関数を使用して、テキストや画像の回転、拡大縮小、傾斜、移動という...

HTML シンボルからエンティティへのアルゴリズムのチャレンジ

チャレンジ:文字列内の文字 &、<、>、" (二重引用符)、および &...

HTMLウェブページのMETAタグのコンテンツを書く際のポイント

META タグは、HTML 言語のヘッダー領域にある補助タグです。作成者、日時、Web ページの説明...

CSS の 6 つの重要なセレクター (3 秒で覚える)

出典: https://blog.csdn.net/qq_44761243/article/deta...

Intellij IDEA による Docker イメージの展開方法の手順の迅速な実装

目次1. Dockerはリモートアクセスを可能にする2. Intellij IDEAにDockerプ...