私は自分の基本的な方法を思い付きました。おそらく、私が考えていなかった、人気のあるスクリプトのいくつかが扱っているものは十数あります。
注 -このソリューションは高速で実装が簡単ですが、もちろんパフォーマンスには優れていません。Apoorvが言及し、パフォーマンスに問題がある場合はdeveloper.googleが説明するように、新しいIntersection Observerを必ず確認してください。
JQuery
$(window).scroll(function() {
$.each($('img'), function() {
if ( $(this).attr('data-src') && $(this).offset().top < ($(window).scrollTop() + $(window).height() + 100) ) {
var source = $(this).data('src');
$(this).attr('src', source);
$(this).removeAttr('data-src');
}
})
})
サンプルHTMLコード
<div>
<img src="" data-src="pathtoyour/image1.jpg">
<img src="" data-src="pathtoyour/image2.jpg">
<img src="" data-src="pathtoyour/image3.jpg">
</div>
説明しました
ページがスクロールされると、ページ上の各画像がチェックされます。
$(this).attr('data-src')
-画像に属性がある場合 data-src
そして、それらの画像がウィンドウの下部からどれだけ離れているか。
$(this).offset().top < ($(window).scrollTop() + $(window).height() + 100)
+ 100を好きなように調整します(たとえば-100)
var source = $(this).data('src');
- data-src=
別名画像URLの値を取得します
$(this).attr('src', source);
-その値を src=
$(this).removeAttr('data-src');
-data-src属性を削除します(ブラウザが、すでにロードされている画像をいじるリソースを浪費しないようにします)
既存のコードへの追加
エディタで、あなたのhtmlを変換するには、単に検索と置換src="
でsrc="" data-src="