• ブログTOP
  • AI・ディープラーニング
  • AR
  • VR
  • WEBサイト
  • WEBマーケティング
  • SEO
  • SNS
  • その他
  • お問い合わせ

ALAKI株式会社

COZIKEEいつまでも使えるTech情報発信ブログ

リクルートサイトはこちら >

遅延読み込みでWebページを高速化!jQuery Lazy Loadの使い方

2018年2月16日

  • このエントリーをはてなブックマークに追加

みなさんこんにちは!
デザイナーの伊東です。

一生懸命作ったWebサイトがめちゃくちゃ重い!
デザイナー・コーダーのみなさんなら、そんな悩みを一度でもお持ちになったことだと思います。

表示速度が遅いのには、容量の大きい動画を配置していたり、数万pxのボリュームのあるページだったり、様々な理由があると思います。

今回はそんなお悩みを解決する方法の一つとして、「画像の遅延読み込み」という方法をご紹介します。
昔からよく知られた技術ですが、実は「SEOに不向きだ」という意見も数多くありました。
しかしGooglebotの技術向上により、その不安は解消されつつあるようです。

読み込んでいる画像の数が多いサイトの場合、非常に有効な手段だと思いますので、ぜひお試しください。

この記事の目次

  • 1 遅延読み込みとは
  • 2 jQuery Lazy Loadの使い方(基本編)
  • 3 jQuery Lazy Loadの使い方(応用編)

遅延読み込みとは

遅延読み込みという技術は、Webサイトに表示される画像を一度に読み込まず、必要に応じて必要な分だけ読み込むというものです。不必要な画像の読み込みを後回しにして、画像以外のCSSやJSファイルの読み込みが先に行われます。そうすることで、表示速度を速くすることができます。

jQuery Lazy Loadの使い方(基本編)

遅延読み込みを実装するにあたり、一番ポピュラーな”Lazy Load”というjQueryプラグインをご紹介します。
Lazy Loadは、読み込みを遅延させたい画像を一旦ダミー画像にすり替えて、表示させるタイミングで本物の画像に差し替えるという動きをします。
画像が差し代わるタイミングは、デフォルトでは画像がブラウザの表示領域内に入った時です。

実装はとてもシンプルで、比較的用意に遅延読み込みの仕組みを取り入れることができます。

それでは、設定方法やオプションなどを詳しく見ていきましょう。

ダウンロードと読み込み

以下のページからダウンロードできます。
(以前は公式サイトからダウンロードできたのですが、現在はgithubからダウンロードする形になっているようです)
https://github.com/tuupola/jquery_lazyload

まずはjQueryと、ダウンロードしたlazyload.jsを読み込みます。
これで前準備は完了です。

1
2
<script src="http://code.jquery.com/jquery-●●●●.min.js"></script>
<script src="js/jquery.lazyload.min.js"></script>

imgタグの設定

次に遅延読み込みさせたい画像の設定を行います。
特定のimgタグに、以下のようにclassとプロパティを設定します。

1
<img src="images/dammy.jpg" class="lazy" data-original="images/example.jpg">

“lazy”というclassがついたimgタグに対してLazy Loadを適用していきます。
data-originalというプロパティで、実際に読み込む画像を指定します。
src属性には、画像が読み込まれる前に表示させておくダミー画像を設定します。

実は、lazyload.jsにはダミー画像を自動的に生成するプログラムが組み込まれています。なのでsrc属性の指定はなくても表示上は問題ないのですが、imgタグにsrc属性を指定しないとW3Cのチェックに引っかかってしまうので、上記の形をオススメします。

Lazy Loadの実行

それではいよいよlazyload.jsを実行していきます。
先ほどのJSファイルを読み込ませた記述の後に、以下のソースを記述します。

1
2
3
$(function($){
  $("img.lazy").lazyload();
});

これだけで基本的な遅延読み込みの設定は完了です。
とても簡単です!

jQuery Lazy Loadの使い方(応用編)

ここからはより高度な遅延読み込みの設定をご紹介します。

threshold

画像が読み込まれるタイミングをずらすことができます。
マイナスの値を大きくすればするほど、読み込まれるタイミングは遅くなっていきます。

1
2
3
4
5
$(function() {
    $('img.lazy').lazyload({
        threshold: -200
    });
});

event

通常、Lazy Loadが発動するタイミングは画像が表示領域に入った時ということを先ほどご説明しました。
このオプションを使えば、他のイベントに対して画像を表示させることができます。
下記の例では、指定した領域がクリックされた時にJSが動くようになっています。
クリックイベントの他にはマウスオーバーイベントなどに対応しているようです。

1
2
3
4
5
$(function() {
    $('img.lazy').lazyload({
        event: 'click'
    });
});

effect

画像が表示される時のエフェクトを設定することができます。
“effect_speed”を合わせて指定することで、エフェクトの速さもコントロールすることができます。

1
2
3
4
5
6
$(function() {
    $('img.lazy').lazyload({
        effect : 'fadeIn',
        effect_speed: 2000
    });
});

skip_invisible

通常であれば”display:none;”になっている画像に対してもLazy Loadは発動します。
このオプションを有効にしておけば、そもそも非表示になっている画像に対してはLazy Loadは効かなくなります。
細かいことかもしれませんが、不必要なJSの動きを控えて、さらに軽量化を後押ししてくれます。

1
2
3
4
5
$(function() {
    $('img.lazy').lazyload({
        skip_invisible: true
    });
});

placeholder

画像表示前に見せておくダミー画像をオプションとして指定することも可能です。
個別に設定する場合は、先ほどご説明したようにsrc属性で指定する形になります。

1
2
3
4
5
$(function() {
    $('img.lazy').lazyload({
        placeholder: 'images/dummy.jpg'
    });
});

 

いかがだったでしょうか。
画像を多用しているサイトにとってはなくてはならないプラグインだと思います。
他のプラグインと比べて比較的導入も簡単だと思うので、まだ使ったことがない方はぜひ一度試してみることをオススメします。

  • ツイート
  • このエントリーをはてなブックマークに追加

You may also like...

  • スクリーンショット 2022-10-30 6.55.50

    Unity Netcode for GameObjects (NGO) (旧MLAPI)× Relayでマルチプレイを実装する

    30 10月, 2022

  • スクリーンショット 2022-11-26 7.27.23

    アプリ開発の多言語対応〜第1回 Unity環境での多言語対応編(Localization)〜

    26 11月, 2022

  • laravel_js

    Laravel Mix使用時にJavascriptの関数が未定義(not found)になるときの対処法

    2 12月, 2022

デザイナー募集
プログラマー募集
  • Next story 第4回「ALAKI ◯◯Lab」を2018年3月9日(金)に開催します!
  • Previous story Webサイトチェックツール「QUWASY」が海外対応しました!

弊社サービス

MONJI+ MUGHEN ALAKI クラウド型受発注システム さよなら過去のAR。WebARがイベント集客に革命を起こします。

運営会社

ALAKI株式会社 ALAKI株式会社採用サイト

人気の記事

  • alaki1462_A_businessman_who_works_logically_1da80a2e-c297-4911-bdd6-feba0ebf1357

    仕事術

    【書籍要約】数学的な仕事術大全

    4 11月, 2024

  • fv-main-img-min

    空間コンピューティング

    世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました

    22 6月, 2023

  • Virtual reality players isometric vector illustration. VR UI and navigation. Futuristic digital technology. Virtual screen. Mixed reality 3d concept. Person in VR headset. Web banner idea

    AR

    Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ

    6 6月, 2023

  • AWE

    未分類

    ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!

    26 5月, 2023

  • python-logo-master-v3-TM

    pyhotn / 業務効率化

    「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

    2 2月, 2023

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

アーカイブ

  • 2024年11月
  • 2023年6月
  • 2023年5月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年2月
  • 2021年12月
  • 2021年9月
  • 2021年7月
  • 2021年6月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年6月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月
  • 2018年1月
  • 2017年12月
  • 2017年11月
  • 2017年10月
  • 2017年9月
  • 2017年8月
  • 2017年7月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年2月
  • 2017年1月
  • 2016年12月
  • 2016年11月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年7月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年7月
  • 2015年3月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年10月
  • 2014年9月
  • 2014年8月
  • 2014年7月
  • 2014年6月
  • 2013年10月
  • 2013年9月

Facebook

お問い合わせ

お問い合わせ

人気の記事

  • 【書籍要約】数学的な仕事術大全
  • 世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました
  • Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ
  • ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!
  • 「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

検索

ALAKI株式会社 © 2025. All Rights Reserved.