JavaScriptで画像遅延読み込み loading lazy

どうも、くまだです。

サイトスピードを上げる施策で、画像遅延読み込みについて。

画像遅延読み込み

画像遅延読み込みは、ブラウザの画面領域にある画像のみ読み込み、領域外の画像は読み込まないことで、画像表示を高速化させる方法です。

JavaScriptを使ってやる方法と、JavaScriptを使わないでやる方法があります。

JavaScriptを使わないでやる場合は下記のような感じで書きます。

<img src="img.png" loading="lazy">

loading=”lazy”をいれるだけ。

ただし、上のやり方は最新のブラウザには対応しているものの、古いバージョンのブラウザには対応していません。もし古いブラウザの対応を考えなければ、上の記述だけでもOK。

もし古いブラウザにも対応するなら、JavaScriptで対応します。

JavaScriptで画像遅延読み込み対応 Lazy Load

Lazy Loadという遅延読み込みを行うためのライブラリを使用します。以下のサイトから入手できます。

ローカルにファイルを落として使ってもいいし、CDNで実装してもいいです。

CDNで実装する場合は、以下のコードをhead内かbodyタグのどちらかに配置します。

<script src="https://cdn.jsdelivr.net/npm/lazyload@2.0.0-rc.2/lazyload.js"></script>

imgタグには以下のように書き換えます。

<img class="lazyload" data-src="img.png">

(レイアウトシフト対策でwidth属性やheight属性も必要ですが、今回の説明では割愛してます。)

lazyloadクラスを付与し、src属性はdata-src属性に書き換えます。

そしてJavaScriptでは、以下の記述が必要です。

lazyload();

これで古いブラウザ対応用のJavaScriptを使った画像遅延読み込みができます。

サイトの読み込み速度が遅いと、ユーザーの離脱につながるので、こういった施策が必要になります。

ここまで読んでくださりありがとうございました。

この記事を書いた人