Saya datang dengan metode dasar saya sendiri yang tampaknya berfungsi dengan baik (sejauh ini). Mungkin ada selusin hal beberapa alamat skrip populer yang belum saya pikirkan.
Catatan - Solusi ini cepat dan mudah diterapkan, tetapi tentu saja tidak bagus untuk performa. Pastikan untuk melihat Intersection Observer baru seperti yang disebutkan oleh Apoorv dan dijelaskan oleh developers.google jika kinerja menjadi masalah.
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');
}
})
})
Contoh kode html
<div>
<img src="" data-src="pathtoyour/image1.jpg">
<img src="" data-src="pathtoyour/image2.jpg">
<img src="" data-src="pathtoyour/image3.jpg">
</div>
Dijelaskan
Saat halaman di-scroll, setiap gambar di halaman akan dicentang ..
$(this).attr('data-src')
- jika gambar memiliki atribut data-src
dan seberapa jauh gambar-gambar itu dari bagian bawah jendela ..
$(this).offset().top < ($(window).scrollTop() + $(window).height() + 100)
sesuaikan + 100 menjadi apa pun yang Anda suka (- 100 misalnya)
var source = $(this).data('src');
- mendapat nilai data-src=
alias url gambar
$(this).attr('src', source);
- masukkan nilai itu ke dalam src=
$(this).removeAttr('data-src');
- menghapus atribut data-src (agar browser Anda tidak membuang sumber daya untuk mengacaukan gambar yang telah dimuat)
Menambahkan ke Kode yang Ada
Untuk mengonversi html Anda, di editor cukup cari dan ganti src="
dengansrc="" data-src="