2012-04-08 18 views
10

मैं जब स्क्रॉल पृष्ठ के नीचे, इस तरह पहुंचता है कुछ सचेत करना चाहते हैं पृष्ठ के निचले भाग तक पहुँच जाता है:का पता लगाने जब स्क्रॉल [jQuery के बिना]

$(function(){ 
    $(document).scroll(function() { 
    if($(document).scrollTop() == 0) alert("top"); 
    }) 
}) 

लेकिन jQuery के बिना, और सतर्क जब तक पहुँचता है तल।

+0

सादा जावास्क्रिप्ट एक तत्व http के नीचे का पता लगाने के विधि में मेरे लिए काम कर रहा है: // stackoverflow.com/a/13526491/1488136 –

+0

उत्तर यहां उपलब्ध है https://stackoverflow.com/questions/3898130/check-if-a-user-has-scrolled-to-the-bottom –

उत्तर

2
document.onscroll = function() { 
    if(!document.body.scrollTop){ 
     alert('top'); 
    } 
} 

JSFiddle demo

+0

यह आईई 8 में काम करता है? –

+2

मैं अतिरिक्त लचीलापन और अन्य ईवेंट हैंडलरों के साथ टकराव से बचने के लिए '.addEventListener ('स्क्रॉल', ...) '' 'onscroll = ...' से अधिक पसंद करूंगा। दुर्भाग्य से यह IE≤8 में काम नहीं करता है, लेकिन पॉलीफिल के लिए यह काफी आसान है। – ephemient

+0

क्या आप यहां एक उदाहरण पोस्ट कर सकते हैं? –

1
if(window.addEventListener){ 
    window.addEventListener('scroll',scroll) 
}else if(window.attachEvent){ 
    window.attachEvent('onscroll',scroll); 
} 

function scroll(ev){ 
    var st = Math.max(document.documentElement.scrollTop,document.body.scrollTop); 
    if(!st){ 
      console.log('top'); 
    }else if((st+document.documentElement.clientHeight)>=document.documentElement.scrollHeight){ 
      console.log('bottom'); 
    } 
} 

उदाहरण: http://jsfiddle.net/ampersand/AEnzJ/

क्रोम 17/18, सफारी 5 में, अर्थात http://browserling.com के साथ परीक्षण किया एफएफ 10/11,0 7-9

+0

सिंटेक्स त्रुटि: अप्रत्याशित टोकन ILLEGAL –

+0

@Tomirammstein किस ब्राउज़र में? – ampersand

+0

Google क्रोम, और यह दुर्लभ है: –

-1
function addEvent(node, type, callback) { 
    if('addEventListener' in node) { 
     node.addEventListener(type, callback, false); 
    } else { 
     node.attachEvent('on' + type, callback); 
    } 
} 

addEvent(window, 'scroll', (function() { 
    // https://developer.mozilla.org/en/DOM/window.scrollY#Notes 
    var stObj, stProp; 
    if('scrollY' in window) { // CSSOM: 
     // http://www.w3.org/TR/cssom-view/#extensions-to-the-window-interface 
     stObj = window; 
     stProp = 'scrollY'; 
    } else if('pageYOffset' in window) { // CSSOM too 
     stObj = window; 
     stProp = 'pageYOffset'; 
    } else { 
     stObj = document.documentElement.clientHeight ? 
      document.documentElement : document.body; 
     stProp = 'scrollTop'; 
    } 

    var node = document.documentElement.clientHeight ? 
     document.documentElement : 
     document.body; // let's assume it is IE in quirks mode 
    var lastSt = -1; 
    return function(e) { 
     if(lastSt !== stObj[ stProp ] && // IE <= 8 fires twice 
      node.scrollHeight === stObj[ stProp ] + node.clientHeight) { 
      alert('bottom'); 
     } 
     lastSt = stObj[ stProp ]; 
    }; 
})()); 

यह सफलतापूर्वक फ़ायरफ़ॉक्स 11, क्रोम 17, आईई 9 (एक्स-यूए-संगत: 8, 7, 5) और ओपेरा 11.60।

+0

के साथ अद्यतन और परीक्षण किया गया यह मेरे लिए सफारी 5 और एफएफ 11.0 दुर्घटनाग्रस्त हो गया। सफारी ने अनंत अलर्ट और एफएफ को लॉक कर दिया। क्रोम 18 अच्छी तरह से व्यवहार किया। – ampersand

+0

@ampersand: चेतावनी के कारण एफएक्स काला हो जाता है। इसे हटाएं और सबकुछ ठीक है (मैं इस बग के कारण इसे इस उदाहरण से नहीं हटाऊंगा)। मेरे पास सफारी की एक प्रति नहीं है। शायद यह एक समान मुद्दा है जैसे आईई क्विर्क मोड में। आईई 'document.documentElement.scrollTop' में हमेशा शून्य होता है। – Saxoier

+0

धन्यवाद @ सैक्सोएर लेकिन स्क्रॉल बार पृष्ठ के निचले भाग तक पहुंचने पर मुझे सतर्कता की आवश्यकता है; लेकिन वैसे भी धन्यवाद :) –

36
document.addEventListener('scroll', function (event) { 
    if (document.body.scrollHeight == 
     document.body.scrollTop +   
     window.innerHeight) { 
     alert("Bottom!"); 
    } 
}); 

यहाँ JSFiddle: http://jsfiddle.net/cSer6/

+7

यह कोड सभी ब्राउज़रों पर काम नहीं करता है - यहां कई स्रोतों (कोड में यूआरएल) से संश्लेषित एक पूर्ण समाधान है: http://jsfiddle.net/W75mP/ – brendan

+0

कौन सा ब्राउज़र इसका समर्थन नहीं करता है? क्या आप मोबाइल के बारे में जानते हैं? – ncubica

3

यह आईई

document.onscroll = function() { 
    if(document.documentElement.scrollTop + window.innerHeight == document.documentElement.scrollHeight) 
    { 
     alert('bottom'); 
    } 
} 

http://jsfiddle.net/cSer6/46/

संबंधित मुद्दे