.scrollTop()仅适用于webkit?

时间:2015-01-04 04:05:03

标签: javascript jquery firefox webkit

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

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

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

在chrome和opera中,这非常有效。

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

2 个答案:

答案 0 :(得分:0)

如果您需要滚动顶部位置,我更喜欢使用偏移:

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

答案 1 :(得分:0)

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

$(window).scroll(function() {
    console.log($(window).scrollTop())
});
BTW,在一个对象上调用jQuery不是世界上禁食的东西,滚动事件可以非常快速地触发。考虑在变量中缓存$(window)以提高性能。

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