web-dev-qa-db-fra.com

scrolltop toujours 0, ne peut pas déclencher de script

En essayant d'ajouter un déclencheur jQuery sur un script de défilement à mon thème enfant, j'ai remarqué qu'il ne s'était jamais déclenché, même s'il avait été ajouté. Cependant, après avoir essayé de comprendre pourquoi le script ne fonctionnait pas, j'ai utilisé document.body.scrollTop pour le retrouver toujours renvoyé une valeur de 0 malgré une hauteur de défilement plus grande.

J'ai essayé la même chose sur le thème parent non modifié et j'ai trouvé qu'il me renvoyait toujours un 0. Donc, je suppose qu’il ya un style ou un script qui le détourne. J'ai essayé de le traquer mais pas de chance pour l'instant.

Est-il possible de réinitialiser la propriété scrolltop via css/javascript ou de déclencher mon script sur un déclencheur de défilement différent?

1
Meir Snyder

Je suppose

body.scrollTop est obsolète en mode strict. Veuillez utiliser documentElement.scrollTop si en mode strict et body.scrollTop uniquement si vous êtes en mode quirks.

Je vous suggère donc d'utiliser document.documentElement.scrollTop. laissez-nous également savoir quand utilisez-vous cette déclaration? montrez-nous le code complet et votre erreur de console si possible

Veuillez essayer le code ci-dessous modifié en ce qui concerne votre code de commentaire et faites-nous savoir ce que vous voyez dans la console.

jQuery(document).ready(function ($) {
 jQuery(window).scroll(function(){
 var ScrollTop = jQuery(window).scrollTop();
 if (ScrollTop > 100) { 
  jQuery( ".site-header" ).addClass( "scroll" ); 
   console.log("above 100");
 }else{
 jQuery( ".site-header" ).removeClass( "scroll" ); 
   console.log("below or equal to 100");
 }
 });
});
2
WPTC-Troop