web-dev-qa-db-de.com

$ (Fenster) .scrollTop () vs. $ (Dokument) .scrollTop ()

Was ist der Unterschied zwischen:

$(window).scrollTop()

und

$(document).scrollTop()

Vielen Dank.

177
frenchie

Sie werden beide den gleichen Effekt haben.

In den Kommentaren wird jedoch darauf hingewiesen: $(window).scrollTop() wird von mehr Webbrowsern unterstützt als $('html').scrollTop().

141
Bodman

Zunächst müssen Sie den Unterschied zwischen Fenster und Dokument verstehen. Das Fensterobjekt ist ein clientseitiges Objekt der obersten Ebene. Über dem Fensterobjekt befindet sich nichts. Javascript ist eine objektorientierte Sprache. Sie beginnen mit einem Objekt und wenden Methoden auf seine Eigenschaften oder die Eigenschaften seiner Objektgruppen an. Beispielsweise ist das Dokumentobjekt ein Objekt des Fensterobjekts. Um die Hintergrundfarbe des Dokuments zu ändern, müssen Sie die Eigenschaft bgcolor des Dokuments festlegen.

window.document.bgcolor = "red" 

Um Ihre Frage zu beantworten, gibt es keinen Unterschied im Endergebnis zwischen Fenster und Dokument scrollTop. Beide geben die gleiche Ausgabe.

Überprüfen Sie das Arbeitsbeispiel unter http://jsfiddle.net/7VRvj/6/

Im Allgemeinen verwenden Sie document hauptsächlich zum Registrieren von Ereignissen und zum Ausführen von Fenstern wie scroll, scrollTop und zum Ändern der Größe.

34
Hussein

Cross-Browser-Art und Weise dies zu tun ist

var top = ($(window).scrollTop() || $("body").scrollTop());
5

Ich hatte gerade einige ähnliche Probleme mit scrollTop, die hier beschrieben wurden.

Am Ende habe ich das mit Firefox und DH umgangen, indem ich den Selektor $('*').scrollTop(0); benutzte.

Nicht perfekt, wenn Sie Elemente haben, die Sie nicht beeinflussen möchten, aber die Unterschiede zwischen Dokument, Textkörper, HTML und Fenster überwinden möchten. Wenn es hilft ...

0
Tapiochre