【JavaScript】画像を遅延表示させる『lazysizes』の実装サンプル集
- 2020.5.1
- JavaScript

画像の遅延表示ができる『lazysizes.js』の使い方と、制作に役立つ実装サンプルをまとめました。
jQueryを使わずに実装できます。
画像をいっぱい使うサイトさんにはとってもおすすめです。
ページの読み込み速度がとっても早くなりますよ。


もくじ(実装サンプル)
1.【サンプル】デフォルト
画像(img)に「lazyload」というクラスを付けます。
遅延表示されると「lazyloaded」というクラスに変わります。
※ Chromeの検証ツールで確認するとよくわかります。
See the Pen
lazysizes.jsで画像を遅延表示、デフォルト by 125naroom (@125naroom)
on CodePen.
HTML
<div class="section"> <div class="imgBox"> <img data-src="https://125naroom.com/demo/img/simple01.jpg" alt="" class="lazyload"> </div> <div class="imgBox"> <img data-src="https://125naroom.com/demo/img/simple02.jpg" alt="" class="lazyload"> </div> <div class="imgBox"> <img data-src="https://125naroom.com/demo/img/simple03.jpg" alt="" class="lazyload"> </div> </div>
CSS
.imgBox { text-align: center; margin: 50px 0; } .imgBox img { max-width: 100%; height: auto; vertical-align: top; }
2.【サンプル】フェードイン(ふわっと)で変わる
画像(img)に「lazyload」というクラスを付けます。
遅延表示されると「lazyloaded」というクラスに変わります。
※ Chromeの検証ツールで確認するとよくわかります。
See the Pen
lazysizes.jsで画像を遅延表示、フェードイン(ふわっと)で変わる by 125naroom (@125naroom)
on CodePen.
HTML
<div class="section"> <div class="imgBox fade"> <img data-src="https://125naroom.com/demo/img/simple01.jpg" alt="" class="lazyload"> </div> <div class="imgBox fade"> <img data-src="https://125naroom.com/demo/img/simple02.jpg" alt="" class="lazyload"> </div> <div class="imgBox fade"> <img data-src="https://125naroom.com/demo/img/simple03.jpg" alt="" class="lazyload"> </div> </div>
CSS
.imgBox { text-align: center; margin: 50px 0; } .imgBox img { max-width: 100%; height: auto; vertical-align: top; } .imgBox.fade img { opacity: 0; transform: translate(0, 50px); transition: 2s; } .imgBox.fade img.lazyloaded { transform: translate(0, 0); opacity: 1; }
3.【サンプル】フェードイン(ふわっと)で変わるタイミングを変える
画像(img)に「lazyload」というクラスを付けます。
遅延表示されると「lazyloaded」というクラスに変わります。
※ Chromeの検証ツールで確認するとよくわかります。
See the Pen
lazysizes.jsで画像を遅延表示、フェードイン(ふわっと)で変わるタイミングを変える by 125naroom (@125naroom)
on CodePen.
HTML
<div class="section"> <div class="imgBox fade" data-expand="-50"> <img data-src="https://125naroom.com/demo/img/simple01.jpg" alt="" class="lazyload"> </div> <div class="imgBox fade" data-expand="-50"> <img data-src="https://125naroom.com/demo/img/simple02.jpg" alt="" class="lazyload"> </div> <div class="imgBox fade" data-expand="-50"> <img data-src="https://125naroom.com/demo/img/simple03.jpg" alt="" class="lazyload"> </div> </div>
CSS
.imgBox { text-align: center; margin: 50px 0; } .imgBox img { max-width: 100%; height: auto; vertical-align: top; } .imgBox.fade img { opacity: 0; transform: translate(0, 50px); transition: 2s; } .imgBox.fade img.lazyloaded { transform: translate(0, 0); opacity: 1; }
4.【サンプル】背景画像を遅延表示させる
背景画像の要素に「lazyload」というクラスを付けます。
遅延表示されると「lazyloaded」というクラスに変わります。
※ Chromeの検証ツールで確認するとよくわかります。
See the Pen
lazysizes.jsで画像を遅延表示、背景画像を遅延表示させる by 125naroom (@125naroom)
on CodePen.
HTML
<div class="bg_area lazyload" data-bg="https://125naroom.com/demo/img/simple01.jpg"> <p>今日も楽しかったです</p> </div>
CSS
.bg_area { padding: 20%; text-align: center; background-size: cover; background-repeat: no-repeat; background-position: center; } .bg_area p { display: inline-block; font-size: 20px; background: #fff; padding: 20px; margin: 0; }
5.【サンプル】iframeを遅延表示させる
iframeに「lazyload」というクラスを付けます。
遅延表示されると「lazyloaded」というクラスに変わります。
※ Chromeの検証ツールで確認するとよくわかります。
See the Pen
lazysizes.jsで画像を遅延表示、iframeを遅延表示させる by 125naroom (@125naroom)
on CodePen.
HTML
<div class="move"> <iframe class="lazyload" width="560" height="315" data-src="https://www.youtube.com/embed/L64VWQiQ3VU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> </div>
CSS
.move { position: relative; width: 100%; padding-top: 56.25%; margin: 2.6em 0 1.6em; vertical-align: middle; } .move iframe { position: absolute; top: 0; right: 0; width: 100%; height: 100%; }
『lazysizes』のダウンロード
まずは『lazysizes』に必要なファイルを下記サイトからダウンロードします。
『lazysizes』の使い方
ダウンロードファイルの中で必要なファイルは以下の1点です。
- lazysizes.min.js
- ls.unveilhooks.min.js (背景画像の場合は必要)
※『min』のついてないファイルでもオッケーです。『min』が付いているファイルは改行などがない容量軽減版になります。
HTML
<script type="text/javascript" src="js/lazysizes.min.js"></script> <script type="text/javascript" src="js/ls.unveilhooks.min.js"></script>(背景画像の場合は必要)
CDNを使う場合は、
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.2.0/lazysizes.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.2.0/plugins/unveilhooks/ls.unveilhooks.min.js"></script>
メモ
『lazysizes』のことで何かわからないことがあれば『lazysizes』公式サイトがあるので一度チェックしてみるといろいろ解決できたりしますよ。
さいごに


関連記事
おすすめ
かんれん
- web / 2019.10.31
- 【CSS】レスポンシブ対応の三角形を作る
- web / 2019.6.13
- 【CSS】吹き出しをつくる、三角の部分をちょっと曲げて素敵にする
- web / 2018.10.25
- 【CSS】しましま(縞模様)をつくる
Googleさんのおすすめ
人気記事
- web / 2019.4.16
- 【CSS】ハンバーガーメニュー実装サンプル集(クリック時のエフェクトも集めました)
- web / 2022.2.1
- 【jQuery】アコーディオン実装サンプル10選
- web / 2019.9.27
- 【jQuery】スライダープラグイン「slick」実装サンプル集
Googleさんのおすすめ
デザインの記事
- 2023.09.29New
- センダイパルコ15th | 仙台PARCO
- 国内、海外のウェブデザイン、パソコン・タブレット・スマートフォンでも見やすいレスポンシブ対応の「あ、いいな」と思うウェブデザインを集めています。
- デザインのこと – Web design gallery
- 2022.06.15
- ちょっと思い出しただけ
- (C)2022『ちょっと思い出しただけ』製作委員会 もくじ 『ちょっと思い出しただけ』 あ…
- いつかのこと – 無印良品の家と暮らす
- 2023.07.31
- 【Google Chrome】ショートカットキーまとめ(Windows or Mac)
- クロームでF5(更新)ってどうするんでしたっけ? あー、Macですか?わかるわかる、な…
- 125naroom / デザインするところ(会社)です。