Heim  >  Artikel  >  Web-Frontend  >  Warum gibt „document.body.scrollTop' im IE 0 zurück und wie kann ich das beheben?

Warum gibt „document.body.scrollTop' im IE 0 zurück und wie kann ich das beheben?

Linda Hamilton
Linda HamiltonOriginal
2024-11-12 09:28:01900Durchsuche

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

Genaue Bildlaufposition im IE mithilfe von document.body.scrollTop ermitteln

Im IE konsistenter Zugriff auf die Bildlaufposition über document.body.scrollTop gibt 0 zurück, auch beim Scrollen. Dieses Verhalten kann für Entwickler, die Scrollereignisse effektiv verfolgen möchten, verwirrend sein.

Um dieses Problem zu beheben, implementieren Browser zwei separate Rendering-Modi: Quirks-Modus und Standards-Modus. Der Quirks-Modus wurde für ältere Websites entwickelt, die vor der weiten Einführung von Webstandards erstellt wurden. Im Quirks-Modus setzt IE document.body.scrollTop fälschlicherweise auf 0.

Um diese Diskrepanz zu beheben, besteht eine Lösung darin, sicherzustellen, dass Ihre Website den Standardmodus-Dokumenttyp verwendet:

<!DOCTYPE html>

Falls Ihre Website kann nicht in den Standardmodus wechseln. Es gibt einen alternativen Ansatz:

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

Dieser Code überprüft sowohl das documentElement als auch den Text. Wenn documentElement definiert ist, hat es Vorrang, da es eine genauere Bildlaufposition bietet. Andernfalls wird auf document.body.scrollTop zurückgegriffen.

Das obige ist der detaillierte Inhalt vonWarum gibt „document.body.scrollTop' im IE 0 zurück und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn