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);

関連記事

2025.08.10

JavaScript

swiper自動再生の一時停止と再開

デモページはこちら swiper.jsでスライドを自動再生させ、ボタンのクリックで一時停止と再開を切り替えます。htmlのコードは以下の通りです。 JavaSc…

2025.08.11

JavaScript

swiper自動再生をマウスオーバーで制御

デモページはこちら swiper.jsでスライドを自動再生させ、マウスオーバーで一時停止、マウスアウトで再開を切り替えます。htmlのコードは以下の通りです。 …

2025.08.08

JavaScript

swiperの完全停止

デモページはこちら swiper.jsでスライドを完全に停止させます。一時停止ではなく完全停止です。htmlのコードは以下の通りです。 JavaScriptのコ…

2020.09.04

JavaScript

JavaScriptライブラリ Web Font Loader(webfont.js)の使い方

デモページはこちら Webフォントの読み込みにWeb Font Loader(webfont.js)を利用します。Web Font LoaderはGoogleと…

2020.10.26

JavaScript

JavaScriptのsplitメソッドで要素を分割し配列に格納

デモページはこちら JavaScriptのsplitメソッドで要素を分割し配列に格納します。 以下のhtmlの構造でテストします。 splitメソッドは指定した…

上に戻る