簡単にスケルトンローディングを実装できる「phantom-ui」ライブラリの使用方法
2026/08/06
あるサイトでページを読み込んだ際、最初は各レイアウトの枠組み的な部分を表示、次にレイアウト内のコンテンツはローディングっぽい表示、最後にコンテンツが表示されていた。調べたところスケルトンローディングといった技術らしくページ読み込みの体感速度を改善する効果があるらしい。以下にライブラリを使用した実装方法のメモ。
サンプル
https://taitan916.info/sample/phantom-ui/
ページ読み込み時は各部分がスケルトンローディングとなり、「ローディング解除」ボタンをクリックするとコンテンツが表示される。また、「スケルトンローディングさせないエリア」はローディング表示・解除に関わらずスケルトンローディングされない点が確認できる筈。
phantom-ui
Github
https://github.com/Aejkatappaja/phantom-ui
CDN
<script src="https://cdn.jsdelivr.net/npm/@aejkatappaja/phantom-ui/dist/phantom-ui.cdn.js"></script>
利用方法
ソースコード
スケルトンローディングさせたい箇所をphantom-uiタグで囲み、loading属性を付与するとスケルトンローディング表示、loading属性を削除するとスケルトンローディングが解除される。
<div class="container">
<phantom-ui id="phantom" loading>
<div class="card mt-3">
<img src="holder.js/1000x300?theme=sky&text=サムネイル" class="card-img-top w-100">
<div class="card-body">
<h5 class="card-title">タイトル</h5>
<p class="card-text">テキストテキストテキストテキストテキストテキストテキストテキスト</p>
<p data-shimmer-ignore>スケルトンローディングさせないエリア</p>
<a class="btn btn-success">ダミーボタン</a>
</div>
</div>
</phantom-ui>
<div class="mt-2">
<a id="change" class="btn btn-primary">ローディング解除</a>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/@aejkatappaja/phantom-ui/dist/phantom-ui.cdn.js"></script>
<script>
$(function(){
$(`#change`).on(`click`, function(){
if( $(`#phantom`).prop(`loading`) ){
$(`#phantom`).prop(`loading`, false)
$(this).html(`ローディング表示`);
}else{
$(`#phantom`).prop(`loading`, true)
$(this).html(`ローディング解除`);
}
});
});
</script>
関連記事
-
-
JavaScriptで配列やオブジェクトの中身をブラウザに表示する方法
JavaScriptで配列やオブジェクトの中身を確認したい場合、console. ...
-
-
JavaScriptで画像読み込み完了のタイミングを検知する「imagesLoaded」ライブラリの利用方法
大き目のサイズの画像をページに設置すると読み込み完了まで時間がかかる。その画像が ...
-
-
JavaScriptにて「loglevel」ライブラリを利用して環境及びレベルによりログを出し分けする方法
JavaScriptにて何らかの確認の際にconsole.logを使うことが多い ...
-
-
PHPでランダムなカラーコードを生成する「RandomColor.php」ライブラリの利用方法
PHPでランダムなカラーコードを生成したい。自作するとなると「0~9」「a~f」 ...
-
-
Push.jsを用いてプッシュ通知を実装&Web Audio APIで通知音も鳴らす方法
プッシュ通知(デスクトップ通知)を実装してみたい。また、通知の際は分かりやすいよ ...