簡単なJSとCSSで作るページ遷移時のloading画面

簡単なJSとCSSで作るページ遷移時のloading画面

現場で作ったやつです。リリースされたサービスでも使っているので下記をそのまま使えば大丈夫かと。

Ads

HTMLはこちら

bodyの直下に配置します。先にloadingが読み込まれないといけないのでコンテンツの上部に来るようにしてください。

※スピナーはFont-Awesomeを使用
Font Awesome, the iconic font and CSS toolkit

<div class="js-loading c-loading-box">
	<i class="c-loading-box__spinner fa fa-spinner"></i>
</div>

CSSはこちら

フェードアウトやスピナーのクルクルはCSSを使って行います。

/* loading-box
--------------------------------------------------------- */
.c-loading-box{
	display: block;
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
	text-align: center;
	background: #fff;
}

.c-loading-box__spinner {
	font-size: 88px;
	display: inline-block;
	margin-top: 80px;
	color: #f1f1f1;
	-webkit-animation-name: rotateThis;
	-webkit-animation-duration:1s;
	-webkit-animation-iteration-count:infinite;
	-webkit-animation-timing-function:linear;
}
@-webkit-keyframes rotateThis {
  from {-webkit-transform:scale(0.5) rotate(0deg);}
  to {-webkit-transform:scale(0.5) rotate(360deg);}
}

.c-loading-box.is-fadeout{
	opacity: 0;
	animation-duration: 0.1s;
	animation-name: fade-out;
	-webkit-animation-duration: 0.1s;
	-webkit-animation-name: fade-out;
}

.c-loading-box.is-hidden{
	display: none;
}

/* fade out 100% */
@keyframes fade-out {
	0% {
		opacity: 1;
	}

	99% {
		opacity: 0;
	}

	100% {
		opacity: 0;
	}
}
@-webkit-keyframes fade-out {
	0% {
		opacity: 1;
	}

	99% {
		opacity: 0;
	}

	100% {
		opacity: 0;
	}
}

JavaScriptはこちら

ロードが終わったら「is-hidden」を付与して消すというjQueryを書きます。

// ローディング
jQuery(window).load(function(){
  jQuery(".js-loading").addClass('is-fadeout');
  setTimeout(function(){
        jQuery(".js-loading").addClass('is-hidden');
    },200);
});

まとめ

実際に現場で作ってみたやつです。CSSで主に動かしているので、スマホでも滑らかに動きます!というか、ブラウザサポート的にSPサイトで使うのが基本ですね。

オススメの本



作りながら学ぶjQueryデザインの教科書

美しいUI/UXを実現する技術が必ず身につくレスポンシブ対応のUI/UXを実現する技術が身につくすぐに使える実用サンプルを作り、動かしながら、学習。jQueryのワンランク上の書き方が、この一冊で学べます。

いいなと思ったらシェアお願いします

同じタグで検索

Ads
ページの先頭へ