L’événement de défilement de la fenêtre jQuery ne se déclenche pas

J’essaie d’implémenter un comportement simple “restr dans la fenêtre” à une div via jquery. Pour cela, je dois lier une fonction à l’événement de défilement de la fenêtre, mais je n’arrive pas à l’obtenir: rien ne se passe. J’ai essayé une simple alerte (), console.log () sans dés. Une idée de ce que je fais mal?

Ce code:

$(window).scroll(function () { console.log("scrolling"); }); 

se trouve dans script.js, situé tout en bas de mon fichier html

     

UPDATE Test URL: http://pixeline.eu/test/menu.php

OK, ça a fonctionné.

En réalité, votre CSS configure le rest du document de sorte qu’il ne présente pas de débordement. Le document lui-même ne défile pas. la solution la plus simple consiste à lier l’événement à l’élément en train de défiler qui, dans votre cas, est div # page.

Donc c’est facile comme changement:

 $(document).scroll(function() { // OR $(window).scroll(function() { didScroll = true; }); 

à

 $('div#page').scroll(function() { didScroll = true; }); 

À votre santé
Charlie

Mon problème était que j’avais ce code dans mon css

 html, body { height: 100%; width: 100%; overflow: auto; } 

Une fois que je l’ai enlevé, l’événement de défilement sur la fenêtre s’est déclenché à nouveau

 $('#div').scroll(function () { if ($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight-1) { //fire your event } } 

Rien ne semblait fonctionner pour moi, mais cela a fait l’affaire

 $(parent.window.document).scroll(function() { alert("bottom!"); }); 

Pour qui sa ne fonctionne tout simplement pas (comme moi) peu importe ce que vous avez essayé: fonctionne comme un charme

exactement comme ils l’expliquent dans les écoles W3 https://www.w3schools.com/tags/ev_onscroll.asp

La solution Thr est:

  $('body').scroll(function(e){ console.log(e); }); 

Essayez 1) de déclarer votre jQuery dans ou 2) enveloppez votre .scroll() avec $(document).ready() ou 3) les deux