$ (finestra) .scrollTop () vs. $ (documento) .scrollTop ()


Risposte:


149

Entrambi avranno lo stesso effetto .

Tuttavia, come sottolineato nei commenti: $(window).scrollTop()è supportato da più browser Web rispetto a $('html').scrollTop().


3
restituisce 0 in IE8 (anche se la mia pagina è in modalità stranezze, il che può avere un ruolo)
— Greg Ogle,

38
$ ('html'). scrollTop () non è cross-browser (come setter non funziona almeno in Chrome). Il modo più crossbrowser per farlo per ora è: $ (window) .scrollTop () come getter, $ ('html, body'). ScrollTop (offset) come setter.
— Georgii Ivankin, il

6
Secondo questo riferimento , senza argomenti scrollTopnon scorre da nessuna parte, ma restituisce solo la posizione di scorrimento corrente.
— OR Mapper

3
@ d2burke scrollTop()è un getter ed scrollTop(value)è un setter. scrollTop()senza argomenti non cambia la posizione di scorrimento.

1
@ M98 window.scrollTo (x, y)
— Bodman,

36

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.

Controlla l'esempio funzionante su http://jsfiddle.net/7VRvj/6/

In uso generale documentprincipalmente per registrare gli eventi e utilizzare windowper fare le cose come scroll, scrollTope resize.


Nessuna differenza nel risultato finale. Entrambi daranno lo stesso risultato.
— Hussein,

Al momento no, alcuni browser non supportano lo scorrimento della finestra poiché l'oggetto finestra potrebbe non essere l'oggetto che trabocca.
— Bodman,

11
Quale browser non supporta la finestra, sii specifico. Ecco un esempio jsfiddle.net/7VRvj/4 . Controllalo in tutti i browser e fammi sapere su quale browser non funziona.
— Hussein,


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 ...


20
Non dovresti mai usare * in questo modo (in effetti, evita * del tutto). Invece di scegliere come target un elemento, stai interessando l'intero DOM. Enorme successo di prestazioni. I selettori dovrebbero essere il più precisi possibile.
— Vlad,

2
Personalmente ho sempre usato $("html,body").scrollTop(val)- mai avuto problemi
— Roi
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.