2010-05-12 16 views
18

ile sayfanın en altına ne zaman kaydırdığımı belirlemeye çalışıyorum (herhangi bir JS kütüphanesi kullanmadan), ama şimdiye kadar biraz kafam karıştı. kullanmak için aşağıdakilerden biri. Gördüğüm en umut verici olanı window.scrollY'dur, ancak sayfanın altına kaydırıldığında bile window.innerHeight değeriyle eşleşmez. Bunu yapmanın en iyi yolu nedir?Bir sayfanın altına kaydırıldığında, Javascript

window.innerWidth 
window.innerHeight 

window.outerWidth 
window.outerHeight 

window.scrollX 
window.scrollY 

document.body.scrollWidth 
document.body.scrollHeight 
document.body.scrollTop 
document.body.scrollLeft 

document.body.offsetTop 
document.body.offsetLeft 
document.body.offsetWidth 
document.body.offsetHeight 
+0

Neden olayları ile ilgili elle yerine jquery gibi bir JS kitaplığını kullanarak güçlük çekmek? – ThiefMaster

+7

Çünkü nasıl yapılacağını anlamıyorsanız jquery – Woot4Moo

cevap

24

window.innerHeight + document.body.scrollTop sonra document.body.offsetHeight için eşit veya daha büyük olduğu Eğer alt

altındadır ancak IE, bu özelliklerle sorunları vardır beri

kaydırma için document.documentElement.scrollTop vegibi alternatif özelliklerini kullanmak gerekir Pencere yüksekliği için

tam kodu: Bu çalışıyor http://jsbin.com/egegu3/6/edit

+0

gibi kütüphaneler oluşturamayacaksınız, teşekkürler! – chimerical

+1

mootools sürümü, http://jsfiddle.net/KFqpF/7/ üzerinde bulunan kod tabanlı – RRG

6

kalbinde bir tembel kişi olmak, DIV en altına bir öğe koymak ve üzerine "element in view" jQuery eklentisi de geçerli olacak. (Yasal Uyarı: Ben onunla hiç kendi deneyime sahip ama iyi görünüyor.)

Blog girişinden örnek hafif varyasyon:

$('#bottomDIV').bind('inview', function (event, visible) { 
    if (visible == true) { 
    // element is now visible in the viewport 
    highlightButtons(); // or whatever you want to do in the context 
    } 
}); 
0

:

window.onscroll = function() 
{ 
    var scrollHeight, totalHeight; 
    scrollHeight = document.body.scrollHeight; 
    totalHeight = window.scrollY + window.innerHeight; 

    if(totalHeight >= scrollHeight) 
    { 
     console.log("at the bottom"); 
    } 
} 
İlgili konular