私はページにたくさんの画像を持っていますが、このサイトの目的のために、クライアントは画像がゆっくりと表示され、行ごとにレンダリングされる通常の方法で画像が読み込まれないことを望んでいます。
むしろ、私たちが探しているのは、画像が読み込まれるまで待ち、画像が読み込まれている間、その場所に小さな読み込みgifを表示することです。各画像が読み込まれると、フェードインします。
これまで私がこれまでに行ったことはこれです:
$('img').each(function(){
$(this).load(function(){
$(this).fadeIn();
});
});
期待どおりに動作します。しかし、私はそれを次のレベルに持っていきたいです。
このページには20枚の画像がありますが、一度に1つか2つしか表示されないとします。次に、ブラウザが下にスクロールしてこれらが表示されない限り、他の18個の読み込みに煩わされないようにします。
これを行うためのプラグイン(lazyloadなど)があることは理解していますが、これらのプラグインでは良い結果が得られていません。
jqueryまたはjavascriptを使用して、画像が現在のビューポートにあるかどうかを確認するにはどうすればよいですか?
- 私のeach()関数は、最初は表示されている画像のみをループします
- 画像が表示されると、画像が読み込まれ、フェードインします。
御時間ありがとうございます。