CSS 読み込み効果の実装 パックマン

CSS 読み込み効果の実装 パックマン
えーっと、名前はただの推測です 2333

序文

これは練習用の CSS デモです。何か間違っている点があれば、ご指摘ください。偏見なく受け入れます。わーい

HTMLレイアウト

  <div class="コンテナ">
    <div class="読み込み中">
      <div class="食べる"></div>
      <div class="load"></div>
      <div class="load"></div>
      <div class="load"></div>
    </div>
  </div>

CSS スタイル

使用される主な効果はアニメーションであり、要素の角度位置を継続的に制御して、パックマンに似た読み込みデモを実現します。
    体 {
      マージン: 0;
      パディング: 0;
      背景: #fff;
    }
    。容器 {
      位置: 絶対;
      上位: 50%;
      左: 50%;
      変換: translate(-50%, -50%);
    }
    .読み込み中{
      位置: 相対的;
      幅: 200ピクセル;
      高さ: 50px;
      ディスプレイ: フレックス;
    }
    。食べる {
      位置: 相対的;
      幅: 50px;
      高さ: 50px;
      左: 0;
      色: #ff0000;
      アニメーション: eat-animate 2.4s easy-in-out infinite;
    }
    @keyframes 食べるアニメーション {
      100% {
        左: 150px;
      }
    }
    .eat::before {
      コンテンツ: '';
      位置: 絶対;
      幅: 0;
      高さ: 0;
      幅: 50px;
      高さ: 25px;
      上: 0;
      境界線の半径: 50px 50px 0 0;
      背景: 現在の色;
      変換: 回転(-30度);
      アニメーション: eat-top 2.4s easy-in-out infinite;
    }
    @keyframes 食べるトップ {
      20% {
        変換: 回転(-30度);
      }
      35% {
        変換: 回転(0度);
      }
      45% {
        変換: 回転(-30度);
      }
      60% {
        変換: 回転(0度);
      }
      70% {
        変換: 回転(-30度);
      }
      85% {
        変換: 回転(0度);
      }
      100% {
        変換: 回転(0度);
      }
    }
    .eat::after {
      コンテンツ: '';
      位置: 絶対;
      幅: 0;
      高さ: 0;
      幅: 50px;
      高さ: 25px;
      下部: 0;
      境界線の半径: 0 0 50px 50px;
      背景: 現在の色;
      変換: 回転(30度);
      アニメーション: eat-bottom 2.4s easy-in-out infinite;
    }
    @keyframes 食べるボトム {
      20% {
        変換: 回転(30度);
      }
      35% {
        変換: 回転(0度);
      }
      45% {
        変換: 回転(30度);
      }
      60% {
        変換: 回転(0度);
      }
      70% {
        変換: 回転(30度);
      }
      85% {
        変換: 回転(0度);
      }
      100% {
        変換: 回転(0度);
      }
    }
    。負荷 {
      位置: 相対的;
      幅:30px;
      高さ: 30px;
      マージン: 10px;
      色: #e47272;
      境界線の半径: 50%;
      背景: 現在の色;
    }
    .load:n番目の子(2) {
      アニメーション: load1 2.4s 線形無限;
      変換: スケール(1);
    }
    @キーフレームロード1 {
      35% {
        変換: スケール(0);
      }
      100% {
        変換: スケール(0);
      }
    }
    .load:n番目の子(3) {
      アニメーション: load2 2.4s 線形無限;
      変換: スケール(1);
    }
    @キーフレームロード2 {
      30% {
        変換: スケール(1);
      }
      58%
        変換: スケール(0);
      }
      100% {
        変換: スケール(0);
      }
    }
    .load:n番目の子(4) {
      アニメーション: load3 2.4s 線形無限;
      変換: スケール(1);
    }
    @キーフレームロード3 {
      60% {
        変換: スケール(1);
      }
      80% {
        変換: スケール(0);
      }
      100% {
        変換: スケール(0);
      }
    }

プレビュー

全体像は上記の通りです。分からない場合は直接返信していただいても結構です。

現在 https://github.com/ajycc20/easy-css-layout で更新中です。コメントをお待ちしています。 ! !

あと、星があったほうがいいですね(笑)

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  Webデザインチュートリアル(8):Webページの階層と空間デザイン

>>:  【Webデザイン】E-WebTemplates の美しい海外の Web ページ テンプレート (FLASH+PSD ソース ファイル+HTML) を共有します

推薦する

ES6実装クラスのプライベート変数の書き方をいくつか詳しく説明します

プライベート変数のクロージャ実装プライベート変数は共有されないnew キーワードにより、 perso...

Telnet は Alpine イメージの busybox-extras に移動されました

Alpine イメージの telnet はバージョン 3.7 以降、busybox-extras パ...

JavaScript メッセージ ボックスの例

JavaScript では、警告ボックス、確認ボックス、プロンプト ボックスの 3 種類のメッセージ...

seata docker 高可用性デプロイメントの詳細な紹介

バージョン1.4.2公式ドキュメントドッカーハブ起動する環境変数SEATA_CONFIG_NAMEを...

MySQL のフィールドに一意のインデックスを追加および削除する方法

1. PRIMARY KEY(主キーインデックス)を追加するmysql>ALTER TABLE...

Vueはvueメタ情報を使用して各ページのタイトルとメタ情報を設定します。

title: vue は vue-meta-info を使用して各ページのタイトルとメタ情報を設定...

Node.js http モジュールの使用

目次序文ウェブHTTP サーバーファイルサーバー練習する序文Node.js 開発の目的は、JavaS...

HTMLのセマンティクスといくつかの簡単な最適化についての簡単な説明

1. セマンティゼーションとは何ですか? Bing辞書の説明セマンティクス化とは、適切な HTML ...

ZooKeeper をベースにした Hadoop 高可用性クラスタの構築のチュートリアル図

目次1. 高可用性の概要1.1 可用性の高い全体アーキテクチャ1.2 QJMに基づく共有ストレージシ...

Linux で unzip コマンドを使用して複数のファイルを解凍する方法

Linuxにunzipコマンドがない問題の解決策unzipコマンドを使用して.zipファイルを解凍す...

実用的なクイックスタートReactルーティング開発

インストールインストールするには、次のコマンドを入力します。 // ネプ npm で react-r...

js キャンバスは検証コードを実装し、検証コード機能を取得します

この記事の例では、検証コードを作成して取得するためのjsキャンバスの具体的なコードを共有しています。...

VueはGraphVisを使用して無限に拡張された関係グラフを開発します

1. GraphVis 公式サイトにアクセスして、対応する js をダウンロードします。js の新し...

Node はあいまい検索用の検索ボックスを実装します

この記事の例では、検索ボックスでファジークエリを実装するためのNodeの具体的なコードを参考までに共...

MySQLの日次統計レポートでは、その日にデータがない場合には0が入力されます。

1. 問題の再現:各日の合計数を日ごとにカウントします。データのない日がある場合、グループ化によっ...