Home  >  Q&A  >  body text

javascript - javascrip如何获取滚动条长度?

初接触javascript,正在用Flask做一个网站。
我想做一个下拉自动加载的效果,但网上找到的例子都没有成功。

$(document).ready(function(){//DOM的onload事件

    $(window).scroll( function() {//定义滚动条位置改变时触发的事件。
        //alert("scroll!");
        top = getSP(); //top为获取的滚动条长度
        alert(top);

        setInterval("cando();", 2000);//每隔2秒钟调用一次cando函数来判断当前滚动条位置。
    });

});
//跨浏览器获取滚动条位置,sp == scroll position
    function getSP(){
        return{
            top: document.documentElement.scrollTop || document.body.scrollTop,
            //left : document.documentElement.scrollLeft || document.body.scrollLeft;
        }
    }

代码参考JavaScript 经典实例收集整理

scroll时间是可以触发的,但是滚动后弹框显示undefined
测试浏览器为chromesafari
请问哪位可以告知怎么获取滚动条的长度呢,这个长度获取的是整个页面的长度还是body的长度呢?
还望赐教。

PHPzPHPz2724 days ago752

reply all(1)I'll reply

  • ringa_lee

    ringa_lee2017-04-10 17:05:30

    $(document).ready(function(){//DOM的onload事件

    $(window).scroll( function() {//定义滚动条位置改变时触发的事件。
        //alert("scroll!");
        scrotop = getSP(); //top为获取的滚动条长度
        alert(scrotop.top);
    
        setInterval("cando();", 2000);//每隔2秒钟调用一次cando函数来判断当前滚动条位置。
    });
    

    });

    你返回的是一个对象,我们需要获取对象里面top的值,而外层top变量重复了,需要更换一个名称,这样就可以了

    reply
    0
  • Cancelreply