Bod*_*man 143

它们都会产生同样的效果.

然而,由于在评论中指出:$(window).scrollTop()由多个Web浏览器支持$('html').scrollTop().

编辑:2017 只需使用$(window).scrollTop()

  • $('html').scrollTop()不是跨浏览器(作为setter,它至少在Chrome中不起作用).目前最常用的横切浏览器方式是:$(window).scrollTop()作为getter,$('html,body').scrollTop(offset)作为setter. (36认同)
  • 根据[this reference](http://api.jquery.com/scrollTop/),没有参数`scrollTop`不会滚动到任何地方,只是返回当前的滚动位置. (6认同)
  • 它在IE8中返回0(虽然我的页面处于怪异模式,这可能起到一定作用) (3认同)
  • @ d2burke`rollTop()`是一个getter,`scrollTop(value)`是一个setter.没有参数的`scrollTop()`不会改变滚动位置. (3认同)

Hus*_*ein 34

首先,您需要了解窗口和文档之间的区别.窗口对象是顶级客户端对象.窗口对象上方没有任何内容.Javascript是面向对象的语言.您从一个对象开始,并将方法应用于它的属性或它的对象组的属性.例如,文档对象是窗口对象的对象.要更改文档的背景颜色,您需要设置文档的bgcolor属性.

window.document.bgcolor = "red" 
Run Code Online (Sandbox Code Playgroud)

要回答您的问题,窗口和文档scrollTop之间的最终结果没有区别.两者都会给出相同的输出.

查看http://jsfiddle.net/7VRvj/6/上的工作示例

一般使用文档主要是注册事件和使用窗口来做滚动,scrollTop和调整大小等事情.

  • 什么浏览器不支持窗口,具体.这是一个例子http://jsfiddle.net/7VRvj/4/.在所有浏览器中检查它,让我知道它不在哪个浏览器. (11认同)

ama*_*emi 5

跨浏览器这样做的方式是

var top = ($(window).scrollTop() || $("body").scrollTop());
Run Code Online (Sandbox Code Playgroud)

  • `$("body").scrollTop()` 已弃用,[不再适用于 Chrome 或 FF](https://bugs.chromium.org/p/chromium/issues/detail?id=766938)。它将返回 0 (3认同)