以前ご紹介したlazy loadと似た画像遅延ロード系のTADAというjQueryプラグインをご紹介します。
スクロールして画像が表示領域に入ってから読み込まれるので、大量の画像がある場合などに読み込みのストレスを軽減してくれます。
lazy loadも良いプラグインなのですが、ある日スマホやタブレット等のデバイスでは、画像が表示領域に入っても表示されないことがあるというのに気付きまして。。
TADAは上記の問題はないようです。
基本的な使い方
必要なファイルを読み込む
以下からtada.jsをダウンロードし、jQueryライブラリと一緒に読み込みます。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="jquery.tada.js"></script>
html
遅延して読み込ませる画像のimgタグに、任意のクラス名を指定します。
data-src属性に実際に表示させたい画像のパス、src属性にはダミー画像を指定しています。
※ダミー画像の大きさは、実際に表示させたい画像と同じくらいの大きさにしてください。
(小さすぎると一度にたくさん表示領域に入ったとみなされて、一気に読み込まれてしまいます)
<img class="ready" src="dummy.gif" data-src="../images/04.jpg" />
jQuery
htmlで指定したクラス名に対して実行するようにします。
<script> $(".ready").tada(); </script>
フェードインで表示させる使い方
画像が表示される時に、CSS3のアニメーションを加えてふんわり表示させる方法です。
ファイルの読み込みやhtmlの書き方は基本と同じです。
jQuery
画像が読み込まれたら.loadedというクラス名が追加されるようにします。
<script> Tada.setup({ delay: 100, callback: function( i_element ) { $( i_element ).addClass( "loaded" ); } }); $(".ready").tada(); </script>
CSS
読み込まれる前は画像を透過し、読み込まれたら透過をなくすようにしています。
.ready { opacity: 0; } .loaded { opacity: 1; -webkit-transition: all 300ms cubic-bezier(0.445, 0.05, 0.55, 0.95) 10ms; -moz-transition: all 300ms cubic-bezier(0.445, 0.05, 0.55, 0.95) 10ms; -o-transition: all 300ms cubic-bezier(0.445, 0.05, 0.55, 0.95) 10ms; transition: all 300ms cubic-bezier(0.445, 0.05, 0.55, 0.95) 10ms; }