Risposte:
Entrambi avranno lo stesso effetto .
Tuttavia, come sottolineato nei commenti: $(window).scrollTop()
è supportato da più browser Web rispetto a $('html').scrollTop()
.
scrollTop
non 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 window
e document
. L' window
oggetto è un oggetto lato client di livello superiore. Non c'è nulla sopra l' window
oggetto. 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' document
oggetto è un oggetto window
dell'oggetto. Per cambiare il document
'colore di sfondo s, quando si imposta la document
' s bgcolor
proprietà.
window.document.bgcolor = "red"
Per rispondere alla tua domanda, non vi è alcuna differenza nel risultato finale tra window
e document
scrollTop
. Entrambi daranno lo stesso risultato.
In uso generale document
principalmente per registrare gli eventi e utilizzare window
per fare le cose come scroll
, scrollTop
e 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 scrollTop
descritti 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