无法获得滚动位置

时间:2015-10-30 06:42:08

标签: javascript jquery html css scroll

我有一个正在滚动的页面。也就是说, body 上的滚动事件侦听器可以正常工作。但是,窗口文档上的滚动侦听器不会触发。

问题是,即使正在滚动,$(“body”)。scrollTop()始终返回0。我循环遍历所有身体的孩子,他们都没有scrollTop()大于0.有些孩子有溢出:隐藏,但这不应该影响scrollTop我想。

我根据this问题删除了高度:100%,我也经历了this个问题。

我确保通过将其溢出设置为隐藏来滚动确实是 body - 滚动条消失了。我还尝试在应用程序中的每个容器div上附加滚动侦听器 - 它们都没有被触发。所以它确实是滚动的 body ,并且出于一些奇怪的原因,jquery scrollTop()为所有元素返回0。

是的,我尝试访问document.body.scrollTop - 仍为0。

任何关于可能导致此问题的提示都会受到很多的感谢。被困在这里一段时间了。谢谢:))

编辑:document.documentElement.scrollTop也返回0. $(文档).scrollTop() - 返回0。 !DOCTYPE html也已设置。

编辑2:奇怪的是,我不能通过在body上设置scrollTop来滚动。也就是说,$('body')。scrollTop(500)什么都不做!

编辑3:: 我的jquery函数:

$("body").on("scroll", function(){
    var children = $("body").children();
    $("body").scrollTop(800);
    for(var i=0; i<children.length; i++){
        if($(children[i]).scrollTop() > 0){
            console.log("children: " + i);
            console.log("val: " + $(children[i]).scrollTop());
        }
    }
});

1 个答案:

答案 0 :(得分:0)

有一个高度:100%来自另一个css文件。通过设置高度解决它:auto。