2020.09.02

JavaScript

JavaScriptライブラリ layzr.jsの使い方

画像の遅延読み込みができるJavaScriptライブラリlayzr.jsの使い方です。ウィンドウ表示領域外の要素や画像は非表示もしくは代替画像にしておいて、スクロールやリサイズでウィンドウ表示領域内に入ったタイミングで表示します。画像の多いサイトの場合、ページの読み込み時間が短縮できます。

layzr.jsはCDNが提供されています。headタグ内に貼り付け用のコードです。

<script src="https://cdnjs.cloudflare.com/ajax/libs/layzr.js/2.2.2/layzr.min.js"></script>

htmlに記述するコードは通常の画像と背景画像とで異なります。
まず通常の画像の場合です。imgタグのsrc属性は代替画像にして、data-layzr属性で遅延読み込みする画像を指定します。

<img src="img/spacer.gif" data-layzr="img/img-01.jpg" alt="">

続いて背景画像の場合です。
背景画像を設定するdivタグ等にdata-layzr属性で遅延読み込みする画像を指定します。また、data-layzr-bg="data-layzr-bg"、width、heightの指定が必要です。widthとheightは元画像の横幅と縦幅を指定し、実際の表示はCSS側のbackground-size等で制御します。なお、background-imageの画像パスの出力用にsrc属性で遅延読み込みする画像を指定します。

<div src="img/main.jpg" data-layzr="img/main.jpg" data-layzr-bg="data-layzr-bg" width="2000" height="1200">
<h1>タイトル</h1>
</div>

最後にJavaScriptのソースです。
オプションのthresholdは画像の読み込み位置を単位vhで調整します。
画像の遅延読み込み実行後の処理として、背景画像の場合はdivタグ等のsrc属性からbackground-imageの画像パスを設定します。そして不要になったsrc属性とdata-layzr-bg属性を削除します。

//オプション設定
var layzr = Layzr({
	normal: 'data-layzr',
	threshold: 50
});

//画像の遅延読み込み実行後の処理(背景画像用)
layzr.on('src:after', function (elm) {
	if(!elm.hasAttribute('data-layzr-bg')) return;
	elm.style.backgroundImage = 'url(' + elm.getAttribute('src') + ')';
	elm.removeAttribute('src');
	elm.removeAttribute('data-layzr-bg');
});

//実行処理
document.addEventListener('DOMContentLoaded', function() {
	//update():初回ページ表示時やDOM構造が変わった場合
	//check():ウィンドウ表示領域内に画像があるか確認し実行
	//handlers(true):スクロール・リサイズイベント時に実行 
	layzr.update().check().handlers(true)
}, false);

関連記事

2020.10.17

JavaScript

swiper.jsのオプションdirectionにverticalを指定して縦方向のスライダーを実装

デモページはこちら swiper.jsのオプションdirectionにverticalを指定して、縦方向のスライダーを実装します。htmlのコードは以下の通りで…

2020.10.27

JavaScript

JavaScriptで文字列を検索(indexOf・search・match・test)

デモページはこちら JavaScriptで文字列を検索するメソッドのまとめです。それぞれ記述の仕方と戻り値に特徴があります。 以下のhtmlの構造でテストします…

2020.10.26

JavaScript

JavaScriptのpushメソッドで配列に要素を追加・joinメソッドで配列の要素を連結

デモページはこちら JavaScriptのpushメソッドで配列に要素を追加し、joinメソッドで配列の要素を連結して文字列を生成します。 以下のhtmlの構造…

2020.10.11

JavaScript

JavaScriptライブラリ swiper.jsの使い方

デモページはこちら JavaScriptライブラリのスライダー、swiper.jsの使い方です。レスポンシブ及びタッチデバイスのスワイプにも対応しています。jQ…

2020.09.07

JavaScript

JavaScriptライブラリ imagesLoaded(imagesloaded.pkgd.js)の使い方

デモページはこちら 画像読み込みの管理ができるJavaScriptライブラリ、imagesLoaded(imagesloaded.pkgd.js)の使い方です。…

上に戻る