2011-12-12 17 views

risposta

14

È possibile trovare l'altezza del contenitore a scorrimento, quindi confrontarlo con la posizione di scorrimento. Se sono uguali, hai raggiunto il fondo.

<div style="overflow: auto; height: 500px"> 
</div> 

$(document).ready(function() 
{ 
    $('div').scroll(function() 
    { 
     var div = $(this); 
     if (div.height() == div.scrollTop() + 1) //scrollTop is 0 based 
     { 
      alert('Reached the bottom!"); 
     } 
    }); 
}); 

Modifica: un po 'di test in un js fiddle e ho capito che la versione precedente non è corretta. È possibile utilizzare una proprietà DOM per scoprire quanto di scorrimento c'è un eseguire un po 'di matematica con l'altezza dell'elemento in questo modo

 var div = $(this); 
     if (div[0].scrollHeight - div.scrollTop() == div.height()) 
     { 
      alert('Reached the bottom!'); 
     } 

http://jsfiddle.net/Aet2x/1/

+0

[scrollHeight non è stato introdotto in IE fino alla versione 8, sebbene] (https://developer.mozilla.org/en/DOM/element.scrollHeight#Browser_compatibility) –

+1

@DavidHedlund Se sta cercando un approccio compatibile con IE 6 e 7 quindi questo non funzionerà, hai ragione. Non ha fornito dettagli sui requisiti di supporto del browser. –

+0

Questo non funziona per me, tuttavia, se lo paragono a div.innerHeight, invece, funziona. Sto assumendo che il margine/padding stia giocando in questo in qualche modo? Non ne sono completamente sicuro – GlyphGryph

0

È possibile controllare se l'elemento scrollTop è pari a l'elemento innerHeight.

if($('div').scrollTop() == $('div').innerHeight()){ 
    //Reached the bottom 
} 
2

questo ha funzionato per me (utilizzando jQuery):

$(document).ready(function(){ 
    $('div').scroll(function(){ 
    //scrollTop refers to the top of the scroll position, which will be scrollHeight - offsetHeight 
    if(this.scrollTop == (this.scrollHeight - this.offsetHeight)) { 
     console.log("Top of the bottom reached!"); 
    } 
    }); 
}); 

Tratto da here.

+0

Preso da qui. mi ha aiutato, come mi aspettavo :) –

Problemi correlati