Respuestas:
Ambos van a tener el mismo efecto .
Sin embargo, como se señaló en los comentarios: $(window).scrollTop()
es compatible con más navegadores web que $('html').scrollTop()
.
scrollTop
no se desplaza a ningún lado, solo devuelve la ubicación de desplazamiento actual.
scrollTop()
es un getter y scrollTop(value)
es un setter. scrollTop()
sin argumentos no cambia la posición de desplazamiento.
Primero, necesitas entender la diferencia entre window
y document
. El window
objeto es un objeto del lado del cliente de nivel superior. No hay nada encima del window
objeto. JavaScript es un lenguaje orientado a objetos. Comienza con un objeto y aplica métodos a sus propiedades o las propiedades de sus grupos de objetos. Por ejemplo, el document
objeto es un objeto del window
objeto. Para cambiar el document
color de fondo de 's, debe establecer la propiedad de document
' s bgcolor
.
window.document.bgcolor = "red"
Para responder a su pregunta, no hay diferencia en el resultado final entre window
y document
scrollTop
. Ambos darán la misma salida.
En el uso general document
, principalmente para registrar eventos y utilizar window
para hacer cosas como scroll
, scrollTop
, y resize
.
La forma cruzada del navegador de hacer esto es
var top = ($(window).scrollTop() || $("body").scrollTop());
$("body").scrollTop()
siempre devuelve 0 en Google Chrome.
$("body").scrollTop()
está en desuso, ya no funciona en Chrome o FF . Volverá 0
Acabo de tener algunos de los problemas similares scrollTop
descritos aquí.
Al final, resolví esto en Firefox e IE usando el selector$('*').scrollTop(0);
No es perfecto si tiene elementos que no desea efectuar pero evita la disparidad de documento, cuerpo, HTML y ventana. Si ayuda ...
$("html,body").scrollTop(val)
, nunca tuve ningún problema