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的长度呢?
还望赐教。

阅读 12.3k
1 个回答

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

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

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

});

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏