62 votes

document.body.scrollTop est toujours égal à 0 dans IE, même en cas de défilement.

J'affiche la valeur de document.body.scrollTop dans la barre d'état lorsque je déplace la souris. La valeur est toujours 0 dans IE. Pourquoi est-elle toujours égale à 0 ? Existe-t-il un autre moyen de savoir de combien la barre de défilement s'est déplacée ?

115voto

Nick Craver Points 313913

Vous pouvez essayer ceci pour un doctype plus ancien dans IE :

var top = (document.documentElement && document.documentElement.scrollTop) || 
              document.body.scrollTop;

15voto

ijavid Points 183

cette fonction fournit une implémentation multi-navigateur de la lecture du décalage de défilement :

function posTop() {
            return typeof window.pageYOffset != 'undefined' ? window.pageYOffset: document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop? document.body.scrollTop:0;
        }

10voto

Vivin Paliath Points 40975

En fonction du DOCTYPE, vous devrez utiliser document.body.scrollTop ou document.documentElement.scrollTop . Avez-vous essayé le second ?

Vous pouvez faire quelque chose comme ça :

var scrollTop = document.documentElement ? document.documentElement.scrollTop :
                                           document.body.scrollTop;

Je suis tombé sur ces liens en faisant des recherches sur votre problème :

Cela pourrait vous aider un peu plus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X