Respostas:
Ambos terão o mesmo efeito .
No entanto, como apontado nos comentários: $(window).scrollTop()é suportado por mais navegadores da web que $('html').scrollTop().
scrollTop, não rola em nenhum lugar, mas apenas retorna o local de rolagem atual.
scrollTop()é um getter e scrollTop(value)é um setter. scrollTop()sem argumentos não altera a posição de rolagem.
Primeiro, você precisa entender a diferença entre windowe document. O windowobjeto é um objeto do lado do cliente de nível superior. Não há nada acima do windowobjeto. JavaScript é uma linguagem orientada a objetos. Você começa com um objeto e aplica métodos às suas propriedades ou às propriedades de seus grupos de objetos. Por exemplo, o documentobjeto é um objeto do windowobjeto. Para alterar o document's cor de fundo, você deve definir o document' s bgcolorpropriedade.
window.document.bgcolor = "red"
Para responder sua pergunta, não há diferença no resultado final entre windowe document scrollTop. Ambos darão a mesma saída.
No uso geral document, principalmente para registrar eventos e usar windowpara fazer coisas como scroll, scrollTop, e resize.
A maneira entre navegadores de fazer isso é
var top = ($(window).scrollTop() || $("body").scrollTop());
$("body").scrollTop()sempre retorne 0 no Google Chrome.
$("body").scrollTop()está obsoleto, não funciona mais no Chrome ou no FF . Ele retornará 0
Acabei de ter alguns dos problemas semelhantes scrollTopdescritos aqui.
No final, eu contornei isso no Firefox e no IE usando o seletor$('*').scrollTop(0);
Não é perfeito se você tiver elementos que não deseja afetar, mas contorna a disparidade de Documento, Corpo, HTML e Janela. Se ajudar ...
$("html,body").scrollTop(val)- nunca tive problemas