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 コマンドの詳細な分析

推薦する

Docker で MySQL をデプロイする詳細なプロセス (Docker でデプロイされる一般的なアプリケーション)

以前にも紹介しました: docker (一般的なアプリケーションのデプロイ): docker dep...

uni-app で scss を使用するサンプル コード

遭遇した落とし穴私は午後中ずっと、uni-app で scss を使用する際の落とし穴を解決すること...

Windows 10 で MySql の解凍バージョンをインストールして構成する方法のチュートリアル

Windows 10 で MySql データベースの解凍バージョンをインストールするステップ 1: ...

MySQL 5.7 でパスワードを変更する簡単な方法

これは公式のスクリーンショットです。MySQL 5.7 をインストールすると、デフォルトのパスワード...

JSはキャンバス技術を使用してeChartsの棒グラフを模倣します

Canvas は HTML5 の新しいタグです。js を使用して Canvas 描画 API を操作...

CSS を解析して画像のテーマカラー機能を抽出する (ヒント)

背景すべては、WeChat 技術グループのクラスメートが「写真の主な色を取得する方法はあるか」と尋ね...

::before/:before と ::after/:after の使用に関する深い理解

パート1: 基礎1. :active や :hover などの疑似クラスとは異なり、これらはすべて疑...

Linux で pyenv をインストールする方法

前提条件gitをインストールする必要があるインストール手順1. リモートリポジトリからpyenvをク...

固定、流動的、柔軟なウェブページレイアウトの長所と短所の分析

ウェブデザイナーを長い間悩ませてきた疑問があります。それは、固定レイアウト、流動的レイアウト、柔軟レ...

MySQLのexecute、executeUpdate、executeQueryの違い

execute、executeUpdate、executeQuery の違い (およびそれらの戻り値...

MySQL マルチテーブルクエリの具体例

1. SELECT句を使用して複数のテーブルをクエリするSELECT フィールド名 FROM tab...

MySQL 8.0 のユーザーとロールの管理原則と使用方法の詳細

この記事では、MySQL 8.0 のユーザーとロールの管理について例を挙げて説明します。ご参考までに...

Docker デプロイメント RabbitMQ コンテナ実装プロセス分析

1. イメージをプルするまず、次のコマンドを実行して、イメージをローカル コンピューターにダウンロー...

Nginx は rtmp ライブ サーバーの実装コードを構築します

1. nginxソースディレクトリに新しいrtmpディレクトリを作成し、git clone http...

Linuxコマンド履歴の調整方法の詳細な説明

Linux システムの bash history コマンドは、以前に実行したコマンドを記憶し、再入力...