.scrollTop() 仅适用于 webkit?

.scrollTop() works ONLY with webkit?

显然 .scrollTop() 仅适用于 webkit 浏览器...这可能吗?这很奇怪,因为我在 Whosebug 中发现了一些标题为 "scrollTop works only in Firefox" 的问题,但发生在我身上的是不同的

$(window).scroll(function() {
    console.log($('body').scrollTop())
})

即使我将 window 替换为 document 也没有任何变化。有趣的是,当我 运行 这个函数和我向下滚动页面时,值仍然是 0 但是数字 0 旁边的红色小徽章在每个像素滚动时都会改变...

在 chrome 和歌剧中这非常有效。

我 运行 在 Win7x64 上使用 Firefox 34.0,我正在使用 jquery 2.1.3

如果你需要scrolltop位置,我更喜欢使用offset:

$(window).scroll(function() {console.log($('body').offset().top) })

这是因为WebKit 将主文档的scrollTop 设置在body 上,而其他浏览器使用html 元素。但是,您可以只使用 window 而不是 'body''html' 来获取主文档滚动位置。

$(window).scroll(function() {
    console.log($(window).scrollTop())
});

顺便说一句,在对象上调用 jQuery 并不是世界上最快速的事情,滚动事件可以非常迅速地触发。考虑在变量中缓存 $(window) 以提高性能。

var $window = $(window);
$window.scroll(function() {
    console.log($window.scrollTop())
});