簡単にスケルトンローディングを実装できる「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>
関連記事
-
-
PHPで画像を比較して類似度を算出する「image-comparator」ライブラリの利用方法
PHPで画像の類似度を計測したい。ただ、そのためのロジックが全く分からないためラ ...
-
-
PHPにて「hashids(Sqids)」ライブラリで数値からユニークなランダム英数字のIDに変換する方法
PHPにてユーザID等を推測されないよう数値のIDからユニークなランダム英数字の ...
-
-
PHPでOGPタグ(metaタグ)を簡単に取得できる「OpenGraph.php」の利用方法
PHPでOGPタグ(metaタグ)を取得する際、file_get_content ...
-
-
JavaScriptで小数の計算をする際にずれ(誤差)を無くす方法(decimal.js)
JavaScriptで小数の計算をすると値がずれる(誤差が発生する)ことがあった ...
-
-
PHPのエラーメッセージ及びvar_dumpを見やすく表示するライブラリ「Tracy」の利用方法
ここのところPHPでの開発時にvar_dumpをツールバー表示する「Kint」及 ...