Javascript $(窗口).scrollTop()与$(文档).scrollTop()的比较

Javascript $(窗口).scrollTop()与$(文档).scrollTop()的比较,javascript,jquery,window,document,scrolltop,Javascript,Jquery,Window,Document,Scrolltop,这两者之间的区别是什么: $(window).scrollTop() 及 谢谢。首先,您需要了解窗口和文档之间的区别。窗口对象是顶级客户端对象。窗口对象上方没有任何内容。JavaScript是一种面向对象的语言。从对象开始,将方法应用于其属性或其对象组的属性。例如,文档对象是窗口对象的对象。要更改文档的背景色,您需要设置文档的bgcolor属性 window.document.bgcolor = "red" 要回答您的问题,在窗口和文档滚动顶之间的最终结果没有差别。两者的输出相同 检查工作

这两者之间的区别是什么:

$(window).scrollTop()


谢谢。

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

window.document.bgcolor = "red" 
要回答您的问题,在
窗口
文档
滚动顶
之间的最终结果没有差别。两者的输出相同

检查工作示例
通常,使用
文档
主要是注册事件,并使用
窗口
执行
滚动
滚动顶部
调整大小
等操作

它们都将产生相同的效果


但是,正如评论中指出的那样:
$(窗口).scrollTop()
受到比
$('html').scrollTop()
更多的web浏览器的支持

我刚才在这里描述的
scrollTop
中遇到了一些类似的问题

最后,我通过使用选择器
$('*')在Firefox和IE上绕过了这个问题


如果您有一些不想影响的元素,但这些元素围绕着文档、正文、HTML和窗口,那么就不是完美的。如果有帮助…

跨浏览器的方法是

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

最终结果没有差别。两者都将提供相同的输出。显然,有些浏览器不支持窗口滚动,因为窗口对象可能不是溢出的对象。哪些浏览器不支持窗口,请具体说明。这里有一个例子。在所有浏览器中检查它,让我知道它不在哪个浏览器上工作。setter的“html”或“body”(取决于浏览器)getter的窗口。。。cf Fiddle:它在IE8中返回0(尽管我的页面处于怪癖模式,这可能是一个因素)$('html')。scrollTop()不是跨浏览器的(作为setter,它至少在Chrome中不起作用)。目前最具交叉浏览功能的方法是:$(窗口)。scrollTop()作为getter,$('html,body')。scrollTop(偏移量)作为setter。根据,没有参数
scrollTop
不会滚动到任何地方,只返回当前滚动位置。@d2burke
scrollTop()
是getter,
scrollTop(value)
是setter
scrollTop()
不带参数不会更改滚动位置。@M98 window.scrollTo(x,y)您不应该以这种方式使用*(事实上,完全避免使用*)。不是针对一个元素,而是影响整个DOM。巨大的性能打击。选择器应该尽可能精确。我个人一直使用
$(“html,body”)。scrollTop(val)
--从未出现过任何问题注意:
$(“body”)。scrollTop()
在Google Chrome中始终返回0。
$(“body”)。scrollTop()不推荐使用。它将返回0
var top = ($(window).scrollTop() || $("body").scrollTop());