
こんにちは!
「初心者のためのWebデザイナー講座 good-f DESIGN」を運営しているユウです!
Webデザイナーってどんな仕事内容?これからWebデザイナーに挑戦したい!という方に向けて、僕が経験したノウハウやWebの楽しさをお伝えできればと思っています!
今回は、JavaScriptの小ネタです。
jQueryで初回アクセス時のみローディングを表示させる方法をご紹介します。
初回アクセスか2回目以降かを判定
まず、ページを訪問したユーザーが、初回アクセスか2回目以降かを判定する必要があります。
jQueryで以下のように記述します。
$(function () {
var webStorage = function () {
if (sessionStorage.getItem('access')) {
// 2回目以降のアクセス
} else {
// 初回アクセス
sessionStorage.setItem('access', 'true'); // sessionStorageに保存
}
}
webStorage();
});
if文で「sessionStorage」にデータがあるかどうかで判定しています。
初回アクセス時は「sessionStorage」にデータがないので、elseの中が実行され、ここで「sessionStorage」に「access」というデータを保存しています。
2回目以降は「sessionStorage」に「access」というデータが保存されていることになるので、ifの中が実行されます。
初回アクセス時のみローディングを表示させる
上記を使って、初回アクセス時のみローディングを表示させるコードを書いてみます。
$(function () {
var webStorage = function () {
if (sessionStorage.getItem('access')) {
$('#loading').fadeOut("slow");
} else {
sessionStorage.setItem('access', 'true');
setTimeout(function () {
$('#loading').fadeOut("slow");
}, 3000);
}
}
webStorage();
});
初回アクセス時は、setTimeoutを使って3秒後に「#loading」が非表示されます。
2回目以降は、アクセス後すぐに「#loading」が非表示されます。
htmlとcssは以下になります。
<div id="loading"></div>
#loading {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
background: #fff;
z-index: 100;
}
真っ白で何もないスタイルですが、ローディング用の画像などを付け足して、ローディングを作ることができると思います。
最後に
以上、jQueryで初回アクセス時のみローディングを表示させる方法をご紹介しました。
初回アクセスか2回目以降かの判定は、ローディング以外にも使える場面が多いので、覚えておくと便利です。
他にも小ネタがあれば書こうと思います。

最後までお読みいただきありがとうございました!
ブログ以外にもTwitter、Facebook、YouTube、LINEもやっていますので、見ていただけたら嬉しいです!
何か気になること等あればお気軽にコメントください。
コメント