existe-t-il un moyen de trouver la fin de la page à l'aide de JQuery, de sorte qu'un message simple puisse s'afficher dire que vous avez atteint la fin de la page. P>
7 Réponses :
Il pourrait avoir besoin de peaufiner pour rendre compte des navigateurs, mais quelque chose comme cela devrait faire:
$(document).scroll(function() { var $body = $('body'); if (($body.get(0).scrollHeight - $body.scrollTop) == $body.height()) { // display your message } });
Cela fonctionnera et je l'ai testé dans IE 7,8,9, FF 3.6, Chrome 6 et Opera 10.6
$(window).scroll(function() { if (document.body.scrollHeight - $(this).scrollTop() <= $(this).height()) { alert('end'); } });
Comment savoir quand vous " Re au bas d'une page strong>: Bien sûr, vous souhaitez déclencher ce qui précède chaque fois que l'utilisateur fait défiler: p> Références: strong> P>
.scroll () code>
strong> li>
.scrolltop () code>
strong> li>
offSetheight code>
fort> li>
ClientHeight code>
fort> li>
ul> p>
Cela ne fonctionne pas pour moi. Je recommande la réponse acceptée à cette question pour la question: Stackoverflow.com/Questtions/3898130/...
@Ryan - Le jsfiddle ne fonctionne-t-il pas pour vous? Quel navigateur utilisez-vous?
Si les solutions ci-dessus ne fonctionnent pas, veuillez vérifier si vous définissez votre type de document à droite:
<!DOCTYPE HTML>
Pour éviter le duplicata console.log ('Fin de la page') CODE>, vous devez créer un Settimeout, comme ceci:
var doc = $(document), w = $(window), timer;
doc.on('scroll', function(){
if(doc.scrollTop() + w.height() >= doc.height()){
if(typeof timer !== 'undefined') clearTimeout(timer);
timer = setTimeout(function(){
console.log('end of page');
}, 50);
}
});
Sinon, vous pouvez supprimer l'écouteur d'événement après la première exécution réussie (console.log)
Remarque pour le débogage: je reçois l'alerte sur le retour au sommet de la page (?) jquery-1.10.2.js. Chargé jQuery-1.6.4.min.js et tout va bien. P>
<script> $(document).ready(function(){ var a = 1; //this function triggers whenever scroll is detected window.addEventListener("scroll", function(){ //this condition is used to trigger alert only once if(a == 1){ //this condition check whether user scrolled to the //bottom of the page or not if(($(document).height()-2) <= scrollY+$(window).height() ){ alert('end of the page'); a = 0; } } }) }); </script>
Bien que ce code puisse résoudre la question, , y compris une explication de la manière et pourquoi cela résout le problème aiderait vraiment à améliorer la qualité de votre post et aboutit probablement à des votes supplémentaires. N'oubliez pas que vous répondez à la question pour les lecteurs à l'avenir, pas seulement la personne qui demande maintenant. S'il vous plaît Modifier Votre réponse Pour ajouter des explications et donner une indication de quelles limitations et hypothèses s'appliquent.
Dupliqué possible de Détermination du défilement au bas d'une page avec JavaScript