提问者:小点点

无法获取滚动位置


我有一个页面的正文在滚动。也就是说,body上的滚动事件侦听器起作用。但是,window和document上的滚动侦听器不会激发。

问题是,即使body是滚动的,$(“body”).scrolltop()始终返回0。我循环遍历了body的所有子级,没有一个scrollTop()大于0。有些孩子有溢出:隐藏,但应该不会影响滚动顶部,我猜。

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

我通过将其溢出设置为隐藏(滚动条消失)来确保滚动的确实是body。我还尝试在应用程序中的每个容器div上附加滚动监听器--没有一个被激发。因此,滚动的确实是主体,由于某种奇怪的原因,jquery scrollTop()为所有元素返回0。

是的,我尝试访问document.body.scrolltop-still 0。

任何关于是什么可能导致这一问题的暗示都将得到非常感谢。被困在这里一段时间了。谢谢:)

编辑:Document.DocumentElement.ScrollTop也返回0。$(document).ScrollTop()-返回0。!还设置了doctype html。

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

编辑3::My 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个答案

匿名用户

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