Risposte:
Entrambi avranno lo stesso effetto .
Tuttavia, come sottolineato nei commenti: $(window).scrollTop()è supportato da più browser Web rispetto a $('html').scrollTop().
scrollTopnon scorre da nessuna parte, ma restituisce solo la posizione di scorrimento corrente.
scrollTop()è un getter ed scrollTop(value)è un setter. scrollTop()senza argomenti non cambia la posizione di scorrimento.
Innanzitutto, devi capire la differenza tra windowe document. L' windowoggetto è un oggetto lato client di livello superiore. Non c'è nulla sopra l' windowoggetto. JavaScript è un linguaggio orientato agli oggetti. Si inizia con un oggetto e si applicano metodi alle sue proprietà o alle proprietà dei suoi gruppi di oggetti. Ad esempio, l' documentoggetto è un oggetto windowdell'oggetto. Per cambiare il document'colore di sfondo s, quando si imposta la document' s bgcolorproprietà.
window.document.bgcolor = "red"
Per rispondere alla tua domanda, non vi è alcuna differenza nel risultato finale tra windowe document scrollTop. Entrambi daranno lo stesso risultato.
In uso generale documentprincipalmente per registrare gli eventi e utilizzare windowper fare le cose come scroll, scrollTope resize.
Il modo cross-browser per farlo è
var top = ($(window).scrollTop() || $("body").scrollTop());
$("body").scrollTop()restituisci sempre 0 in Google Chrome.
$("body").scrollTop()è obsoleto, non funziona più su Chrome o FF . Restituirà 0
Ho appena avuto alcuni dei problemi simili scrollTopdescritti qui.
Alla fine l'ho aggirato su Firefox e IE usando il selettore$('*').scrollTop(0);
Non perfetto se hai elementi che non vuoi applicare ma aggira le disparità di documenti, corpi, HTML e finestre. Se aiuta ...
$("html,body").scrollTop(val)- mai avuto problemi