$(window) . scrollTop () vs. $(document) . scrollTop ()

有什么区别:

$(window).scrollTop()

还有

$(document).scrollTop()

谢谢。

381592 次浏览

首先,您需要了解 windowdocument之间的区别。window对象是顶级客户端对象。在 window对象上面没有任何东西。JavaScript 是一种面向对象的语言。您从一个对象开始,并将方法应用于其属性或其对象组的属性。例如,document对象是 window对象的对象。要更改 document的背景颜色,需要设置 documentbgcolor属性。

window.document.bgcolor = "red"

为了回答你的问题,windowdocumentscrollTop的最终结果没有区别。两者将给出相同的输出。

检查 http://jsfiddle.net/7VRvj/6/的工作实例

一般来说,使用 document主要是为了注册事件,而使用 window来做像 scrollscrollTopresize这样的事情。

他们都有 同样的效果

但是,正如评论中指出的: 更多的网络浏览器支持 $(window).scrollTop()$('html').scrollTop()

我只是遇到了这里描述的 scrollTop的一些类似问题。

最后,我通过使用选择器 $('*').scrollTop(0);火狐IE上解决了这个问题

如果你有不想影响的元素,但是它可以避开文档、主体、 HTML 和窗口的差异,那就不完美了。如果有帮助的话。

跨浏览器的方法是

var top = ($(window).scrollTop() || $("body").scrollTop());