Antworten:
Sie werden beide den gleichen Effekt haben .
Wie in den Kommentaren erwähnt, $(window).scrollTop()
wird jedoch von mehr Webbrowsern als unterstützt $('html').scrollTop()
.
scrollTop
nirgendwo gescrollt, sondern nur die aktuelle Bildlaufposition zurückgegeben.
scrollTop()
ist ein Getter und scrollTop(value)
ist ein Setter. scrollTop()
ohne Argumente ändert die Bildlaufposition nicht.
Zunächst müssen Sie den Unterschied zwischen window
und verstehen document
. Das window
Objekt ist ein clientseitiges Objekt der obersten Ebene. Über dem window
Objekt 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 document
Objekt ein Objekt des window
Objekts. Um die Änderung zu document
‚s Hintergrundfarbe, dann würden Sie die eingestellte document
s‘ bgcolor
Eigenschaft.
window.document.bgcolor = "red"
Um Ihre Frage zu beantworten: Es gibt keinen Unterschied im Endergebnis zwischen window
und document
scrollTop
. Beide geben die gleiche Ausgabe.
Im Allgemeinen Gebrauch document
hauptsächlich Ereignisse zu registrieren und verwenden window
zu tun , Dinge wie scroll
, scrollTop
, und resize
.
Browserübergreifende Vorgehensweise ist
var top = ($(window).scrollTop() || $("body").scrollTop());
$("body").scrollTop()
Geben Sie in Google Chrome immer 0 zurück.
$("body").scrollTop()
ist veraltet, funktioniert nicht mehr auf Chrome oder FF . Es wird 0 zurückgeben
Ich hatte gerade einige der ähnlichen Probleme mit scrollTop
hier beschriebenen .
Am Ende habe ich dies in Firefox und IE mithilfe des Selektors umgangen$('*').scrollTop(0);
Nicht perfekt, wenn Sie Elemente haben, die Sie nicht beeinflussen möchten, aber die Unterschiede zwischen Dokument, Text, HTML und Fenster umgehen. Wenn es hilft ...
$("html,body").scrollTop(val)
- hatte nie Probleme