純粋な CSS を使用して脈動するローダー効果のソースコードを作成する

純粋な CSS を使用して脈動するローダー効果のソースコードを作成する

効果プレビュー

右側の「クリックしてプレビュー」ボタンを押すと現在のページでプレビューが表示され、リンクをクリックすると全画面でプレビューされます。

https://codepen.io/comehop​​e/pen/wYvGwr

インタラクティブビデオ

このビデオはインタラクティブなので、いつでもビデオを一時停止して、ビデオ内のコードを編集できます。

Chrome、Safari、Edgeで開いて視聴してください。

https://scrimba.com/p/pEgDAM/cnMgQTr

ソースコードのダウンロード

Daily Front-end Practice Series の完全なソース コードを GitHub からダウンロードしてください。

https://github.com/comehop​​e/front-end-daily-challenges

コード解釈

DOM を定義すると、コンテナーには 10 個の子要素が含まれます。

<div class="loader">
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
</div>

センターディスプレイ:

体 {
    マージン: 0;
    高さ:100vh;
    ディスプレイ: フレックス;
    アイテムの位置を中央揃えにします。
    コンテンツの中央揃え: 中央;
    背景: 線形グラデーション(#eee 70%、ピンク);
}

コンテナ スタイルを、ピンクの背景と線の付いた円に設定します。

.ローダー{
    幅: 6em;
    高さ: 6em;
    パディング: 3em;
    フォントサイズ: 10px;
    背景色: ピンク;
    境界線の半径: 50%;
    境界線: 0.8em のホットピンク単色;
}

子要素のレイアウトを水平タイルに設定します。

.ローダー{
    ディスプレイ: フレックス;
    アイテムの位置を中央揃えにします。
    コンテンツの両端揃え: スペースの間;
}

子要素のスタイルを設定するには:

.loader > スパン {
    幅: 0.5em;
    高さ: 50%;
    背景色: ディープピンク;
}

子要素にアニメーション効果を追加します。

.loader > スパン {
    変換: スケールY(0.05) 移動X(-0.5em);
    アニメーション: span-animate 1.5 秒 無限イーズインアウト;
}
@keyframes span-animate {
    0%、100% {
        変換: スケールY(0.05) 移動X(-0.5em);
    }
    15% {
        変換: スケールY(1.2) 移動X(1em);
    }
    90%、100% {
        背景色: ホットピンク;
    }
}

サブ要素のインデックスを設定して、サブ要素がアニメーションを順番に再生できるようにします。

.loader > スパン {
    アニメーション遅延: calc(var(--n) * 0.05s);
}
.loader > span:nth-child(1) { --n: 1; }
.loader > span:nth-child(2) { --n: 2; }
.loader > span:nth-child(3) { --n: 3; }
.loader > span:nth-child(4) { --n: 4; }
.loader > span:nth-child(5) { --n: 5; }
.loader > span:nth-child(6) { --n: 6; }
.loader > span:nth-child(7) { --n: 7; }
.loader > span:nth-child(8) { --n: 8; }
.loader > span:nth-child(9) { --n: 9; }
.loader > span:nth-child(10) { --n: 10; }

コンテナアニメーションを追加して脈動効果を強化します。

.ローダー{
    アニメーション: loader-animate 1.5s 無限の easy-in-out;
}
@keyframes ローダーアニメーション {
    45%、55% {
        変換: スケール(1.05);
    }
}

要約する

上記は、エディターが紹介した純粋な CSS を使用して脈動するローダー効果を作成するソースコードです。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。エディターがすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

<<:  nginx を介してローカルでリバースプロキシを構成するプロセス全体

>>:  Oracle の MySQL バージョンでユーザー Scott のテーブル ステートメントを作成する例

推薦する

JavaScript における Arguments オブジェクトの使用に関する詳細な説明

目次序文議論の基本概念議論の役割実パラメータと仮パラメータの数を取得する実際のパラメータ値を変更する...

MySQL テーブルをコピーする 3 つの方法 (要約)

テーブル構造とそのデータをコピーする次のステートメントは、データを新しいテーブルにコピーします。注:...

HTMLページ作成に関する私の経験の簡単な要約

Word of Mouth に入社して 3 ~ 4 か月が経ちました。仕事の中で一番の収穫は、ビジュ...

Linux の daily_routine サンプルコードの詳細な説明

まずサンプルコードを見てみましょう: #/bin/bash cal 日付 -u echo "...

MySQLクエリトランザクション処理へのノード接続の実装

目次トピックmysqlの追加、削除、変更、クエリを入力しますMySQL トランザクション処理私は M...

MySQL の 6 つの一般的な制約タイプの詳細な説明

目次序文1.nullでない2. ユニーク3. デフォルト4.主キー自動増分主キー5. 外部キー6.チ...

DockerはClickHouseをインストールし、データテストを初期化します

クリックハウスの紹介ClickHouse は、SQL クエリを使用して分析データ レポートをリアルタ...

Vue における $router と $route の違いの詳細な説明

通常、vue プロジェクトではルーティングを使用します。vue-router は vue.js の公...

MySQLデータベースのデータテーブルに関する詳細な基本操作

目次1. 現在のデータベース内のテーブルを表示する2. テーブルを作成する3. 指定されたテーブル構...

MySQLパスワードを忘れた場合のいくつかの解決策

解決策1完全にアンインストールしてすべてのデータを削除します。まず、MySQLに関連するすべてのプロ...

Vueはシンプルなマーキー効果を実装します

この記事では、Vueの具体的なコードを共有して、シンプルなマーキー効果を実現しています。具体的な内容...

wgetはウェブサイト全体(サブディレクトリ全体)または特定のディレクトリをダウンロードします

wgetコマンドを使用して、親ディレクトリの下のサブディレクトリ全体をダウンロードします。親ディレク...

Webpack での publicPath の使用法の詳細な説明

目次出力出力パス出力.publicPath webpack-dev-server の publicP...