画像を遅延ロードする定番jQueryプラグイン「Lazy Load」
画像を遅延ロードする定番jQueryプラグイン「Lazy Load」を紹介します。
1.概要
jQueryプラグイン「Lazy Load」を使って画像を遅延ロードさせることで、ページロード時のHTTPリクエストを減らすことができます。
以前、「Lazy Load」を使っても新しいブラウザではHTTPリクエスト回数が減らない問題があったようですが、2012年11月現在は改善されています。
改善後の仕組みは、img要素のsrc属性にダミーの画像ファイルを指定しておき、ページロード後にスクロールによってimg要素が表示領域に入った段階でdata-original属性に指定した画像を読み込みます。
<img src="grey.gif" data-original="foo.jpg" width="640" heigh="480">
2.サンプル
サンプルを作りましたのでお試しください。
スクロールすると画像を順次表示します。
3.Lazy Loadプラグインのダウンロード
「Lazy Load」のページ下にある「source」または「minified」を右クリックして「名前をつけてリンク先を保存」を選択します。
ダウンロードしたjquery.lazyload.jsまたはjquery.lazyload.min.jsを、サーバの任意のディレクトリにアップロードします。
4.Lazy Loadプラグインの設定
簡単なサンプルとして、次のimg要素を用意します。src属性にはダミー画像のURLを設定し、data-original属性に表示したい画像のURLを設定します。width属性、height属性も設定しておくことを推奨します。
<img class="lazy" src="white.gif" data-original="example.jpg" width="640" heigh="480">
body終了タグの直前に下記のscript要素を記述します。jquery.lazyload.jsのパスなどは適宜変更してください。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script src="jquery.lazyload.js" type="text/javascript"></script>
<script>
$('.lazy').lazyload();
</script>
これでスクロールしたときにdata-original属性の画像が表示されます。
5.オプション
プラグインにはオプションがいくつか用意されています。ここでは代表的なものを抜粋して紹介します。
effect:フィードイン効果を付与できます。
$(function(){
$('.lazy').lazyload({
effect: 'fadeIn'
});
});
effectspeed:フィードインの速度をmsで設定できます。
$(function(){
$('.lazy').lazyload({
effect: 'fadeIn',
effectspeed: 2000
});
});
event:画像を表示するイベントを指定します。たとえば「click」を指定すれば、スクロールだけでは画像は表示されず、クリックしたときに初めて表示されます。
$(function(){
$('.lazy').lazyload({
event: 'click'
});
});
container:イベント発生時の対象領域を指定します。
$(function(){
$('.lazy').lazyload({
container: $("#hoge")
});
});
data_attribute:data-xxxの「xxx」の部分を設定できます。
$(function(){
$('.lazy').lazyload({
data_attribute: 'foo'
});
});
- Ajaxのページ遷移でURLが変更できるjQueryプラグイン「PJAX」
- jQueryでページ分割ができる「SimplePaginationプラグイン」
- jQueryでスクロールでトップに「戻る」リンクを表示する「PageTop」プラグイン
- jQueryでテーブル幅を変更できる「jQuery Resizable Columnsプラグイン」
- jQueryで目次を自動生成する「tocプラグイン」
- jQuery.pjaxとjQuery.bottomを使ってSEO対策つきの無限スクロールを実装する
- jQueryでサイドメニューに現在のセクション要素を表示する「DisplaySectionプラグイン」
- jQueryでヘッダーに現在の見出し要素を表示する「DisplayHeadingプラグイン」
- JSONデータをHTMLにマッピングできるjQueryプラグイン「JSON2HTML」
- ローディング画面を簡単に表示できるjQueryプラグイン「BlockUI」
- スクロールしたときにおすすめ記事を右下からにゅるっと表示させるjQuery「RecommendFooterプラグイン」
- jQuery UI Tabsのタブ切替でブラウザの「戻る」「進む」を有効にする方法
- jQueryのAjaxやタブ切替などでブラウザの「戻る」「進む」が有効になる「hashchangeプラグイン」(実装解説つき)
- jQueryでcookieを簡単に使える「jQuery Cookie」のまとめ
- jQuery.uploadプラグインで親要素のonsubmitを起動させない対処