2021/04/14
画像は必要なし!CSS+JSでローディング画面の実装手順を解説!

最近ではhoverアクションやローディングアニメーションは画像を使用しなくてもCSSだけで動きがあるものを制作できるようになってきました。
今回は参考にしているエフェクト集「Css Effects」からローディングアニメーションの動きを使用したローディング画面の実装方法について解説していきます。
エフェクト集「Css Effects」
まずは動きの参考にしているエフェクト集「Css Effects」を見てみましょう。

一段目の左から2つ目か、二段目の左から2つ目がローディングアニメーションとして使えそうです!
今回は二段目の左から2つ目のアニメーションを使用したいと思います。

①使用したいアニメーションの所でクリックをします
②クリックをするとCSSがコピーをされるので使用したいスタイルシートにペーストしましょう
それではコピーしたCSSをJSと組み合わせて実装してみましょう。
ローディング画面
See the Pen
bGgLaJv by saki kurita (@saki_0415)
on CodePen.
※画面更新をすると再びローディングの動きを見ることができます。
まずはHTMLから解説していきます。
HTML
<div id="loader-bg"> <div class="bouncingLoader"><div></div></div> </div> <p>ローディング画面完了後にテキスト表示</p>
#loader-bgはローディングの動きの.bouncingLoaderを囲う要素です。
その要素の下に表示させたい内容を記述していきます。今回の例でいうとpタグになります。
続いてCSSです。
CSS
/*画面全体をloader-bgで覆い隠すため背景色をひいてposition: fixed;で浮かせた状態にします*/
#loader-bg {
background: #fff;
height: 100%;
width: 100%;
position: fixed;
top: 0px;
left: 0px;
z-index: 1000;
}
/*ここからコピーしてきたCSSになりますが、loader-bgで囲っているので先頭に#loader-bgを付け足しています*/
#loader-bg .bouncingLoader {
background: #fff;
position: fixed;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
z-index: 10;
}
.bouncingLoader > div, .bouncingLoader:before, .bouncingLoader:after {
display: inline-block;
width: 13px;
height: 13px;
background: hsl(243, 80%, 62%);
margin-bottom: -5px;
border-radius: 50%;
animation: bouncing-loader 0.6s infinite alternate;
}
.bouncingLoader > div, .bouncingLoader:before, .bouncingLoader:after {
content: "";
}
.bouncingLoader > div {
margin: 0 5px;
}
.bouncingLoader > div {
animation-delay: 0.2s;
}
.bouncingLoader:after {
animation-delay: 0.4s;
}
/*3つの円が上下に動くためのアニメーション*/
@keyframes bouncing-loader {
to {
opacity: 0.1;
transform: translate3d(0, -16px, 0);
}
}
最後にJSです。
JS
$(window).on('load',function(){
$("#loader-bg").delay(3000).fadeOut('slow');
//ローディング画面を3秒(3000ms)待機してからフェードアウト
});
$(window).on(‘load’,function(){ で、画像、動画などの関連データの全ての読み込みが完了したら実行します。
ローディングアニメーションを要素に含んでいる#loader-bgを3秒待機させてからフェードアウトで非表示をするようにしています。秒数は適宜変更してください。
これでCSSを使用したローディング画面の完成です!
まとめ
アニメーションする画像を作らなくても、CSSだけで表現できるのでとてもお手軽ですね。今回ご紹介した「Css Effects」以外にも色々と動きはアレンジできるので試してみてください。
コーディング業務のご依頼、ご相談の詳細についてはこちらから
最後までお読みいただき、ありがとうございました。
よろしければシェアしていただければ幸いです。
| 次の記事へ | 前の記事へ |
WEB業界ならqam!qam(カム)はWEB業界で働く人や興味がある人に役立つ情報サイトです。
マーケティングやデザイン、マークアップ(コーディング)、プログラム、トレンドなどの情報をqamライター陣が執筆。噛めば噛むほど(読めば読むほど)制作・開発や運営・運用、業界知識やノウハウを学ぶことができます。



