Maison  >  Article  >  interface Web  >  Pourquoi « document.body.scrollTop » renvoie-t-il 0 dans IE et comment puis-je y remédier ?

Pourquoi « document.body.scrollTop » renvoie-t-il 0 dans IE et comment puis-je y remédier ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-12 09:28:01855parcourir

Why Does `document.body.scrollTop` Return 0 in IE and How Can I Fix It?

Obtenir une position de défilement précise dans IE à l'aide de document.body.scrollTop

Dans IE, accéder de manière cohérente à la position de défilement via document.body.scrollTop renvoie 0, même lors du défilement. Ce comportement peut être déroutant pour les développeurs cherchant à suivre efficacement les événements de défilement.

Pour résoudre ce problème, les navigateurs implémentent deux modes de rendu distincts : le mode Quirks et le mode Standards. Le mode Quirks est conçu pour les sites Web plus anciens créés avant que les normes du Web ne soient largement adoptées. En mode Quirks, IE définit incorrectement document.body.scrollTop sur 0.

Pour résoudre cet écart, une solution consiste à vous assurer que votre site Web utilise le doctype en mode Standards :

<!DOCTYPE html>

Au cas où votre site Web ne peut pas passer en mode Standards, il existe une approche alternative :

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

Ce code vérifie à la fois le documentElement et le corps. Si documentElement est défini, il est prioritaire car il fournit une position de défilement plus précise. Sinon, il revient à document.body.scrollTop.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn