
画像を使わずに、スタイルシートだけで実装するローディングのアニメーションを考えてみました。
まずはサンプルをご覧ください。
クルクル回るローディングのアニメーションは、多くの場合GIF画像を使って実装しますが、上のリンク先で紹介しているのは完全にCSSのみで動かしています。
具体的には次のような HTML + CSS で再現しています。
HTML
<div class="loading"> <i><i><i><i><i><i><i><i><i><i><i><i> </i></i></i></i></i></i></i></i></i></i></i></i> </div>
ここでは「i」要素を12個並べていますが、これが点滅する1つ1つの楕円を構成しています。
CSS
.loading {
font-size:48px;
position:relative;
height:1em;
width:1em;
padding-left:0.45em;
overflow:hidden;
margin:0 auto;
-webkit-animation:loader-rotate 0.5s steps(12) infinite;
-moz-animation:loader-rotate 0.5s steps(12) infinite;
-ms-animation:loader-rotate 0.5s steps(12) infinite;
-o-animation:loader-rotate 0.5s steps(12) infinite;
animation:loader-rotate 0.5s steps(12) infinite;
}
.loading i {
display:block;
position:absolute;
height:0.3em;
width:0.1em;
border-radius:0.05em;
background:rgba(0,0,0,0.8);
transform:rotate(-30deg);
transform-origin:center 0.5em;
}
@-webkit-keyframes loader-rotate {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
@-moz-keyframes loader-rotate {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
@-ms-keyframes loader-rotate {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
@-o-keyframes loader-rotate {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
@keyframes loader-rotate {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
スタイルシートは上記のとおり。
「font-size」の値を変えることで、サイズを調整できるようになっています。
コピペで再現できるので、ぜひご利用ください。