画面のスクロールに合わせて画像を読み込むjQuery『Lazy Load Plugin for jQuery』

2010年7月29日
このエントリーをはてなブックマークに追加
Clip to Evernote

画面を下の方にスクロールしてもらえばわかりますが、このブログには『Lazy Load Plugin for jQuery』というjQueryプラグインを導入してます。

このjQueryプラグインはディスプレイで表示されている分だけ画像を読み込むというもの。
画像はスクロールにあわせて都度読み込む、つまり無駄な画像読み込み時間が減る分、ページ表示速度が上がるというわけです。特にこのブログのように大きな画像をたくさん使っているようなサイトではその効果は大きいはず。

Lazy Load Plugin for jQuery

導入方法

まずはLazy Load Plugin for jQueryより「jquery.lazyload.js」もしくは「jquery.lazyload.mini.js」をダウンロード。(Downloadのとこのsourceかminifiedのとこで右クリック→リンク先を保存でOKです。)
jQueryをはじめて導入する方はjQueryファイルもダウンロードしてください。

あとはhtmlのhead内で二つのファイルを読み込ませ、ついでに命令文を書けばOKです。ここではjquery.lazyload.mini.jsを使いました。


<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.lazyload.mini.js"></script>
<script type="text/javascript">
$(function() {
$("img").lazyload();
});
</script>

ちなみに命令文を以下のように書くと200px先読みして画像を読み込んでくれます。


<script type="text/javascript">
$(function() {
$("img").lazyload({ threshold : 200 });
});
</script>

そしておすすめがこれ。
適当な1ピクセル×1ピクセルの画像を用意して(ここではgrey.gif)以下のように書けば画像読み込み時にフェードインのエフェクトをかけることができます。このブログでもこのエフェクトを使っています。


<script type="text/javascript">
$(function() {
$("img").lazyload({
    placeholder : "img/grey.gif",
    effect : "fadeIn"
});
});
</script>

うーんかっこいい。

Webサイトページの表示速度が遅いとユーザーの離脱に大きく影響を与えてしまいます。誰だってサクサクでストレスの少ないWebサイトを好みますからね。
大きな画像をたくさん使っている方は導入を検討してみてはいかがでしょうか?

Lazy Load Plugin for jQuery

追記:2010/08/07 サイドバーには適応させたくないなら

このプラグインを記事部分(メインコンテンツ部分)にだけ適用させたい場合は以下のように記述します。
例えばフェードインエフェクトを使いたい場合で記事部分にid=”hoge”とマークアップしているなら


<script type="text/javascript">
$(function() {
$("#hoge img").lazyload({
    placeholder : "img/grey.gif",
    effect : "fadeIn"
});
});
</script>

これで「ページの最後までスクロールしないとサイドバーの画像がされない」ということがなくなります。

追記:2010/08/25

どうやらフェードを使うとiPhoneでは画像が表示されなくなる場合があるみたいです。ちなみにこのブログは大丈夫でした。
もしこの現象に見舞われたら、WordPressの方はiPhone表示用プラグイン(iWPhoneとかiWtouchとか)を使えばOKですが、それ以外の方はとりあえずフェードエフェクトを使わないという解決策しか今のところ思いつきません。
ユーザーエージェント判別してスクリプトを除外…とかすれば出来そうな気がしないでもないですが、よくわからないので詳しい方いらっしゃいましたらアドバイスお願いします。

追記:2011/08/15

iPhoneで表示されない時の対処法がこちらで紹介されてました!
jQuery lazy load pluginの導入と思わぬ不具合への対応! | [NC]News Clipping

お悩みだった方は是非ご覧下さい。

タグ

タグ:

関連記事

iPhone、iPadに最適なLightbox『TOUCH GALLERY』を試してみました

2010年11月15日
このエントリーをはてなブックマークに追加
thumb

画像をギャラリーとしてかっこよく表示してくれる、いわゆるLightboxプラグイン。
最近ではいろんなサイトで様々なLightboxプラグインを見かけますね。
今回iPhone、iPad向けに開発されたという『TOUCH GALLERY』というプラグインを試してみました。

このプラグインはiPho [...]

クールなドロップダウンナビゲーションを実現するjQuery Plugin『droppy』

2010年8月5日
このエントリーをはてなブックマークに追加

すでにいろんなブログで紹介されているjQuery『droppy』ですが、今回仕事で使ってみたらかなりいい感じだったのでご紹介。
情報が増えすぎて激しくネスト化したカテゴリを持つサイトでも、すっきりと見せつつ、なおかつトップページから一発で下層カテゴリに誘導可能なドロップダウンナビゲーションをいい感じ [...]

ヘッダーに数行書くだけ!IE6で透過PNGを表示させるjQueryプラグン『 jquery.pngFix.js』

2010年8月2日
このエントリーをはてなブックマークに追加
jquery.pngFix

Webデザイナーの悩みの種IE6。その問題の一つは透過PNGがうまく表示されないということ。
そこでIE6でもうまく透過PNGを表示させるために開発されたJavaScriptが多数存在するわけですが、今回紹介するのはその中でもおそらく最も簡単に導入が可能なjQueryプラグイン。
特別なマークアップ [...]

コメント / トラックバック 9 件
  1. Nori より:

    はじめまして。
    サイドバーにLazy Load Plugin for jQueryを反映したくなくてどうしようと思ってたら見つけました!
    とっても助かりました。。。ありがとうございますXD

    • sitoh より:

      こんにちは、素敵なブログを運営されてますね!びっくりしました。
      僕自身もこの現象にはちょと焦りましたがお役に立てて幸いです。
      とりあえずCSS3関連読みあさらせていただきます。よろしくです。

  2. Nori より:

    こんにちは!
    Lazy Load Plugin for jQueryでちょっと都合が悪いことを発見。
    実はiPhoneで見ると画像が表示されません…orz
    どうしましょ。
    という訳で私は記事によって使い分けることにしました。
    写真をたくさん使っているページは今更変えるのも厄介なので…
    ページの読み込みが速くなるので気に入ってたんですけどね。
    ちょっと残念です。

    • sitoh より:

      あらら本当だ。
      iPhone表示用にiWPhone入れてるんで気付きませんでした…

      どうやらフェードエフェクトが悪さしてるみたいですね。
      試しにフェードじゃなくてデフォルトに変えてみたらiPhoneでも画像表示されました。
      これだとページ読み込み速度の面はOKですけど、フェードが使えないとやっぱりちょっと寂しいですね。

      とりあえず僕は当面はiPhone用にはiPhone表示用プラグイン使って、PCではフェード使うようにします。
      フェードのかっこよさに惹かれてためにこのスクリプト導入したようなもんなんで…

      とりあえず追記しときますね。情報ありがとうございます!

  3. sitoh より:

    リニューアルしたらこのブログではiPhone表示用プラグイン無しでも画像が表示されるようになりました。
    原因を探ってみたけど…うーんわからん。

  4. [...] 下記が設定の参考にさせていただいたサイトです。 http://monodez.com/create/lazyload.html [...]

  5. ショコラ より:

    こんにちわ。
    活用させてもらってます。お世話様です~
    ところで、これは画像以外にブログパーツに適用ってできますか?
    これができたら最強な気がします!

  6. sitoh より:

    ショコラさんコメントありがとうございます。
    このjQueryはどうやら画像専用のようですね。残念です!

  7. [...] ・jQuery lazy load plugin:画像表示のローディング 参考:http://monodez.com/create/lazyload.html [...]

コメントをどうぞ

最近の記事

カテゴリー

タグ一覧

アーカイブ