pagetop

BLOG

【jquery】でローディングを実装する

  • HOME

  • BLOG

  • 【jquery】でローディングを実装する

Article

【jquery】でローディングを実装する

javascript

jqueryを使用して基本的なローディングをの実装方法をメモします。
昨今ローディングページにも工夫を凝らしているクリエイティブサイトも増えました。
ここでは、基本的なローディングとロゴなどのイメージを少しアニメーションさせたパターンをメモします。

 

jqueryを実装する

まずは、</body>の前にjqueryを設置します。

<script src='https://code.jquery.com/jquery-3.3.1.min.js'></script>

 

パーセントとローディングバー

最も基本的なパターンですね。読み込みパーセントとローディングバーがリンクしているタイプです。

jquery後にCDNを設置します。

<script src="https://rawgit.com/kimmobrunfeldt/progressbar.js/master/dist/progressbar.min.js"></script>

IE11への対応が必要な場合は以下を追記します。

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.26.0/polyfill.min.js"></script>

 

JSを記述する

javascriptを記述します。

var bar = new ProgressBar.Line(loading_text, {
easing: 'easeInOut',
duration: 1000,
strokeWidth: 0.2,
color: '#555',
trailWidth: 0.2,
trailColor: '#bbb',
text: { 
style: {
position: 'absolute',
left: '50%',
top: '50%',
padding: '0',
margin: '-30px 0 0 0',
transform:'translate(-50%,-50%)',
'font-size':'1rem',
color: '#fff',
},
autoStyleContainer: false 
},
step: function(state, bar) {
bar.setText(Math.round(bar.value() * 100) + ' %'); 
}
});

//アニメーションスタート
bar.animate(1.0, function () {
$("#loading").delay(500).fadeOut(800);
});

easingはアニメーション効果です。linear、easeIn、easeOut、easeInOutが指定可能です。
その他、時間・進捗ゲージの太さ・ゲージベースのい太さやカラーを指定します。

easing: 'easeInOut',//アニメーション効果

duration: 1000,//時間指定(1000=1秒)
strokeWidth: 0.2,//進捗ゲージの太さ
color: '#555',//進捗ゲージのカラー
trailWidth: 0.2,//ゲージベースの線の太さ
trailColor: '#bbb',//ゲージベースの線のカラー

テキストのスタイルを設定します。

text: { 
style: {
position: 'absolute',
left: '50%',
top: '50%',
padding: '0',
margin: '-30px 0 0 0',
transform:'translate(-50%,-50%)',
'font-size':'1rem',
color: '#fff',
},
autoStyleContainer: false 
},

スタートするアニメーションを設定します。

//バーを描画する割合を指定します 1.0 なら100%まで描画
bar.animate(1.0, function () {
//アニメーションが終わったら#loadingエリアをフェードアウト
$("#loading").delay(500).fadeOut(800);
});

CSSを記述する

CSSを記述します。

#loading {
position: fixed;
z-index: 99999999;
width: 100%;
height: 100%;
background:#000;
text-align:center;
color:#fff;
}
#loading_text {
position: absolute;
top: 50%;
left: 50%;
z-index: 999;
width: 100%;
transform: translate(-50%, -50%);
color: #fff;
}

HTMLを記述する

HTMLを記述します。

<body>直下に記述します。

<div id="loading">
<div id="loading_text"></div>
</div>

デモはこちら

 

イメージがアニメーションで出現するローディング

本サイトでも使用しています。SVGをローディングに使用しています。

 

JSを記述する

javascriptを記述します。
こちら前述したCDN不要です。jqueryのみでOKです。

$(window).on('load',function(){
$("#loading").delay(2000).fadeOut('slow');
$("#loading-img").delay(1500).fadeOut('slow');
});

ローディング画面を2秒(2000ms)待機してからフェードアウトさせます。

$("#loading").delay(2000).fadeOut('slow');

ロゴを1.5秒(1500ms)待機してからフェードアウトさせます。

$("#loading-img").delay(1500).fadeOut('slow');

基本的にはこれだけです。

CSSを記述する

CSSを記述します。

#loading {
position: fixed;
width: 100%;
height: 100%;
z-index: 99999999;
background:#fff;
text-align:center;
}

#loading-img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}

#loading-img img {
width:260px;
}
.fadeUp{
animation-name: fadeUpAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity: 0;
}

@keyframes fadeUpAnime{
from {
opacity: 0;
transform: translateY(100px);
}

to {
opacity: 1;
transform: translateY(0);
}
}

animationプロパティを使用してアニメーションの設定をします。

HTMLを記述する

HTMLを記述します。

<body>直下に記述します。

<div id="loading">
<div id="loading-img">
<img src="img/loading.svg" alt="" class="fadeUp">
</div>
</div>

デモはこちら

 

今回は基本的なギミックですが、SVGを使用して手書きアニメーションを実装するなど、バリエーションが楽します。
次回メモしたいと思います。

Spread the love