CSS ローディングアニメーションを作成する
CSS
のスタイルのみでローディングアニメーションを作成する方法を紹介します。
完成形
以下のようなローディングアニメーションを作成します。
適用しているスタイルを1つづつ解説します。
<style>
.spinner {
height: 100px;
width: 100px;
border: 5px solid #ccc;
border-top: 5px solid blue;
display: inline-block;
border-radius: 100%;
animation: rotation .5s infinite linear;
}
@keyframes rotation {
from {
transform: rotate(0deg);
}
to {
transform: rotate(359deg);
}
}
</style>
<div class="spinner">
</div>
要素を作成
まずはローディングアニメーションを表示する要素を作成します。
div
要素を作成し、display: inline-block
のスタイルを指定します。
display: inline-block
を指定すると、サイズを指定できるようになるので、width
とheight
を指定します。
また、border
も指定してdiv
要素の表示領域を確認できるようにします。
<style>
.spinner {
height: 100px;
width: 100px;
border: 5px solid #ccc;
display: inline-block;
}
</style>
<div class="spinner">
</div>
円状にする
要素を円状にするため、border-radius
を指定します。
border-radius
に100%
を指定すると、ボーダーの四隅が完全に丸くなり、要素は円状になります。
また、border-top
のみ色を変更します。
要素を回転させると、色が変わった部分のみが回転する動作になります。
<style>
.spinner {
height: 100px;
width: 100px;
border: 5px solid #ccc;
border-top: 5px solid blue;
display: inline-block;
border-radius: 100%;
}
</style>
<div class="spinner">
</div>
回転させる
要素を回転させるため、アニメーションを設定します。
rotation
という名前で要素を回転させるアニメーションを作成します。
0.5秒でrotation
のアニメーションが繰り返し実行されるようにanimation
のスタイルを設定します。
<style>
.spinner {
height: 100px;
width: 100px;
border: 5px solid #ccc;
border-top: 5px solid blue;
display: inline-block;
border-radius: 100%;
animation: rotation .5s infinite linear;
}
@keyframes rotation {
from {
transform: rotate(0deg);
}
to {
transform: rotate(359deg);
}
}
</style>
<div class="spinner">
</div>
以上で、ローディングアニメーションの完成です。
ボーダーの太さや色、アニメーションを変更すれば独自のローディングアニメーションを作成できます。