9
votes

Alerte à l'aide de jQuery lorsque vous faites défiler jusqu'à la fin de la page

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.


7 Réponses :


0
votes

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
    }
});


0 commentaires

6
votes

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');
    }
});


0 commentaires

18
votes

Comment savoir quand vous " Re au bas d'une page : xxx

Bien sûr, vous souhaitez déclencher ce qui précède chaque fois que l'utilisateur fait défiler: xxx

Voici un exemple de jsfiddle qui s'estompe dans un "vous "Re fait! Faites défiler vers la page" Lien lorsque l'utilisateur a défilé vers le bas de la page.

Références:


2 commentaires

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?



2
votes

Si les solutions ci-dessus ne fonctionnent pas, veuillez vérifier si vous définissez votre type de document à droite:

<!DOCTYPE HTML>


0 commentaires

1
votes

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);

    }

});


1 commentaires

Sinon, vous pouvez supprimer l'écouteur d'événement après la première exécution réussie (console.log)



0
votes

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.


0 commentaires

0
votes
 <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>

1 commentaires

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.