CSS - ローダー:動的ロードアニメーション作成の入門ガイド
こんにちは、未来のウェブ開発者さんたち!今日は、CSSローダーの魅力的な世界に飛び込みます。近所の親切なコンピュータ教師として、この旅を案内することを楽しみにしています。コードを一行も書いたことがない方も心配しないでください - 我々は非常に基本から始め、段階的に進めていきます。このチュートリアルの終わりには、あなたのウェブサイトをプロフェッショナルで魅力的なものにする目を引くロードアニメーションを作成できるようになります。では、始めましょう!
CSSローダーとは?
コードに飛び込む前に、CSSローダーとは何であり、なぜそれが重要なのかを理解しましょう。ウェブサイトを訪れたことがあると思いますが、コンテンツがロードされるのを待っている間に、回転している円や跳ねている点を見たことがありますか?那就是ローダーです!これらのアニメーションは、ユーザーにビジュアルフィードバックを提供し、バックグラウンドで何かが起こっていることを知らせます。これは訪問者に、「少々お待ちください、準備をしています」と言うようなものです。
最初のローダーを作成する
では、袖をまくって、私たちの最初のローダーを作成しましょう。まずはシンプルなものから始め、段階的に複雑さを増やします。
CSSローダー - 基本例
以下は、回転する円を作成する基本的なローダーです:
<div class="loader"></div>
.loader {
border: 16px solid #f3f3f3;
border-top: 16px solid #3498db;
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
これを分解すると:
-
<div>
要素を作成し、クラス「loader」を追加します。 - CSSでは、このdivを円形にします(
border-radius: 50%
)。 - 全ての側にライトグレーの境界線を設定し(
#f3f3f3
)、上側に青い境界線(#3498db
)を設定します。 -
animation
プロパティで回転効果を設定します:
-
spin
はアニメーションの名前です。 -
2s
はアニメーションが完了するまでの時間です。 -
linear
はアニメーションの速度が一定であることを意味します。 -
infinite
は無限に繰り返すことを意味します。
-
@keyframes
ルールはアニメーションの内容を定義します。0%から360度に回転します。
それで、あなたの最初のローダーが完成しました。素晴らしいですね?
border-rightプロパティを使用したローダー
では、少し異なるアプローチで、「時計の針のように時計回りに増える」ようなローダーを作成しましょう:
<div class="loader"></div>
.loader {
border: 16px solid #f3f3f3;
border-radius: 50%;
border-top: 16px solid #3498db;
border-right: 16px solid #3498db;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
ここで異なる点は、border-right: 16px solid #3498db;
を追加したことです。これにより、回転時に増えるように見えるローダーが作成されます。時計の針が動くのを見ているようなものですね?
:beforeと:afterを使用したローダー
次に、:before
と:after
の擬似要素を使用して、より複雑なローダーを作成しましょう。これで「重ね合わせるリング」効果が得られます:
<div class="loader"></div>
.loader {
width: 120px;
height: 120px;
position: relative;
}
.loader:before, .loader:after {
content: "";
position: absolute;
border: 8px solid #f3f3f3;
border-radius: 50%;
animation: spin 2s linear infinite;
}
.loader:before {
top: 0;
left: 0;
right: 0;
bottom: 0;
border-top-color: #3498db;
}
.loader:after {
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
border-top-color: #e74c3c;
animation-delay: 0.5s;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
このローダーは二つの回転する円を作成します:
- 外側の円(
:before
)は青い上側の境界線を持っています。 - 内側の円(
:after
)は少し小さく、赤い上側の境界線を持っており、半秒後から回転します。
結果として、魅力的な重ね合わせるリング効果が得られます。すごいですね?
linear-gradientを使用したローダー
最後に、linear-gradient
を使用してローダーを作成しましょう。これにより、スムーズな連続した色の遷移が得られます:
<div class="loader"></div>
.loader {
width: 120px;
height: 120px;
border-radius: 50%;
background: linear-gradient(to right, #3498db 50%, #f3f3f3 50%);
animation: spin 1s linear infinite;
}
.loader:before {
content: "";
display: block;
width: 100px;
height: 100px;
border-radius: 50%;
background: #fff;
margin: 10px;
position: relative;
z-index: 1;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
このローダーは次の巧みなトリックを使用しています:
- グラデーションを使用して半分が青で半分がグレーの円を作成します。
-
:before
擬似要素を使用して白い円を上に置きます。 - 外側の円が回転するにつれて、スムーズなロードアニメーションのイリュージョンが生まれます。
ローダー メソッドのまとめ
ここで説明したメソッドの簡単な参照表を示します:
メソッド | 説明 | 主要プロパティ |
---|---|---|
基本例 | シンプルな回転円 | border, border-radius, animation |
border-right | 時計回りに増える効果 | border, border-right |
:beforeと:after | 重ね合わせるリング効果 | :before, :after, animation-delay |
linear-gradient | スムーズな色の遷移 | linear-gradient, :before |
そして、あなたは刚刚、CSSローダーの4つの異なる方法を学びました。これらはただのスタート地点です - 色やサイズ、アニメーションを自由に実験して、独自のローダーを作成してみてください。
このまとめの最後に、短い話を共有したいと思います。私がCSSを教え始めた頃、ローダーに苛立ちを感じていた生徒がいました。彼は言いました、「なぜこんなものを使うの?ユーザーは待つのが嫌いだし!」しかし、彼が最初のカスタムローダーを作成した瞬間、彼の目が輝きました。彼は気づきました。適切なアニメーションであれば、少しの待ち時間も楽しい体験に変えることができるのです。これがCSSローダーの力です - 待ち時間を驚きの時間に変えます。
では、創作を続けましょう!これらの技術を試してみて、組み合わせてみて、最も重要なのは、楽しむことです。ウェブ開発の世界では、創造力があなたの最高の友です。ハッピーコーディングを、次回までお楽しみに!
Credits: Image by storyset