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().
scrollTopnirgendwo 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 windowund verstehen document. Das windowObjekt ist ein clientseitiges Objekt der obersten Ebene. Über dem windowObjekt 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 documentObjekt ein Objekt des windowObjekts. Um die Änderung zu document‚s Hintergrundfarbe, dann würden Sie die eingestellte documents‘ bgcolorEigenschaft.
window.document.bgcolor = "red"
Um Ihre Frage zu beantworten: Es gibt keinen Unterschied im Endergebnis zwischen windowund document scrollTop. Beide geben die gleiche Ausgabe.
Im Allgemeinen Gebrauch documenthauptsächlich Ereignisse zu registrieren und verwenden windowzu 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