CSS3を使って画像なしでローディング中アイコンを作成する方法
「CSS3 loading spinners without images • CSS & (X)HTML • Kilian Valkhof」という記事がありました。画像を使わずにCSS3だけでローディング中に表示されるスピナーアイコンを実現しよう、というものです。
例ではCSS3 animationだけでやっているもののあるのですが、それだとFirefoxとWebkit系でちょっと動きが変わってくるので最終的には簡単なJavaScriptを絡めています。(上記リンクをFirefoxとChrome(Safari)でアクセスするとその動きの違いがわかります)。
で、こんな感じで書きます。
まず45度回転するとして四角い部分が8つ必要になるのでそのスタイルを定義します。
.bar1 {
-moz-transform:rotate(0deg) translate(0, -40px);
-webkit-transform:rotate(0deg) translate(0, -40px);opacity:0.12;
}
.bar2 {
-moz-transform:rotate(45deg) translate(0, -40px);
-webkit-transform:rotate(45deg) translate(0, -40px);opacity:0.25;
}
.bar3 {
-moz-transform:rotate(90deg) translate(0, -40px);
-webkit-transform:rotate(90deg) translate(0, -40px);opacity:0.37;
}
.bar4 {
-moz-transform:rotate(135deg) translate(0, -40px);
-webkit-transform:rotate(135deg) translate(0, -40px);opacity:0.50;
}
.bar5 {
-moz-transform:rotate(180deg) translate(0, -40px);
-webkit-transform:rotate(180deg) translate(0, -40px);opacity:0.62;
}
.bar6 {
-moz-transform:rotate(225deg) translate(0, -40px);
-webkit-transform:rotate(225deg) translate(0, -40px);opacity:0.75;
}
.bar7 {
-moz-transform:rotate(270deg) translate(0, -40px);
-webkit-transform:rotate(270deg) translate(0, -40px);opacity:0.87;
}
.bar8 {
-moz-transform:rotate(315deg) translate(0, -40px);
-webkit-transform:rotate(315deg) translate(0, -40px);opacity:1;
}
で、スピナーアイコン全体を囲むDIVタグを以下のように指定します。
#div1 {
position:relative;
width:100px;
height:100px;
margin-bottom:1.5em;
margin-right:1.5em;
-moz-border-radius:100px;
float:left;
-moz-transform:scale(0.5);
-webkit-transform:scale(0.5);
}
#div1 div {
width:10px;
height:30px;
background:#000;
position:absolute;
top:35px;
left:45px;
}
で、HTMLはこんな感じに。
最後にJavaScriptはこんな感じに。
で、最終的にはこんなスピナーアイコンになります。
どうでしょうか?というか私は普通に素直にアニメーションGIFの方がいいや。
カテゴリ
インターネットコメント
Yahooで取り上げられた記事
ブログ内検索
BlogPeople ReviewMe!
このサイトのレビューとか応援コメントを書いてもらえると励みになります。



