Lakukan Sesuatu Jika Elemen Mencapai Area Terlihat
Kode ini digunakan untuk mengeksekusi suatu perintah jika elemen telah mencapai area terlihat pada layar. Semacam prinsip yang biasanya digunakan pada plugin-plugin lazyLoader
gambar dan infiniteScroll
:
function isScrolledIntoView(elem) {
var $window = $(window),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $(elem).offset().top,
elemBottom = elemTop + $(elem).outerHeight();
return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
Sampel Penggunaan
Umumnya digunakan dalam peraturan kondisi seperti ini:
if (isScrolledIntoView('#element')) {
$('#element').addClass('here-it-is');
}
Penggunaan pada Elemen Banyak
$('div').each(function() {
if (isScrolledIntoView(this)) {
$(this).addClass('here-it-is');
} else {
$(this).removeClass('here-it-is');
}
});
Contoh Lain: Image Lazy Loader
HTML
<img src="" alt="Loading..." data-src="images/image-1.jpg">
<img src="" alt="Loading..." data-src="images/image-2.jpg">
<img src="" alt="Loading..." data-src="images/image-3.jpg">
<img src="" alt="Loading..." data-src="images/image-4.jpg">
jQuery
$(window).on("scroll", function() {
$('img').each(function() {
if (isScrolledIntoView(this)) {
$(this).attr('src', $(this).data('src')).removeAttr('data-src');
}
});
});
Sumber: Lupa! :p
Labels: Gambar, JavaScript, jQuery, Potongan
7 Comments:
Luar biasa, pengen buat kreasi apa ya dengan yg satu ini.. hmmm..
By Surga Kenari, at Thursday, August 2, 2012 at 6:42:00 PM GMT+7
Itu bisa untuk semua-nya ngak bang..??
By Unknown, at Thursday, August 2, 2012 at 11:41:00 PM GMT+7
owh baru keliatan pada saat di scroll.
PR 3 nih :D
By Bayu Handono, at Friday, August 3, 2012 at 11:04:00 AM GMT+7
gunanya selain buat lazyload img apa mas? :D
By Putra, at Friday, August 3, 2012 at 5:28:00 PM GMT+7
Bisa, asalkan elemennya melintang.
By Taufik Nurrohman, at Friday, August 3, 2012 at 5:45:00 PM GMT+7
Bikin JQuery WayPoint pakai ini! :-bd
http://imakewebthings.com/jquery-waypoints/
By Taufik Nurrohman, at Friday, August 3, 2012 at 5:59:00 PM GMT+7
waypoint untuk apa bung?
oiya, ada cara lain untuk menampakkan teks loading selain di tag "alt" tidak?
misal dimasukkan di javascriptnya dan tag "alt"nya penjelasan gambar seperti biasanya..
tolong buat kan donk mas kalau bisa.. :D
By Zaenal Abidin, at Monday, June 17, 2013 at 8:10:00 AM GMT+7
Post a Comment
<< Home