在将Div滚动到底部时从服务器加载数据

时间:2012-02-28 19:21:01

标签: jquery javascript

只有当我通过滚动到达div底部附近时才需要在div中加载数据。

面临的问题是$('div')。scrollHeight()和$('div')。scrollTop()值到达底部时不一样,所以我无法识别滚动到底是不是。

如何识别div滚动到达底部附近(或者可能是底部减去一些长度)?

请建议......

注意:基本上我正在尝试像Facebook自动收报机那样做。

此致 纳文

3 个答案:

答案 0 :(得分:2)

网上有很多卷轴示例,下面的代码来自this one

...
    if(container.scrollTop+container.clientHeight == container.scrollHeight){
                startRow = parseInt(startRow) + 10;
                getData();
    }
...

希望有所帮助。

答案 1 :(得分:1)

这是一个JSFiddle scroll它使用scrollTop + clientHeight来比较scrollHeight。看看它是否适合你,对不起它在Mootools,但它非常直接。

function HandleScroll()
{
    var el = $("outer");
    if( (el.scrollTop + el.clientHeight) >= el.scrollHeight )
    {
        el.setStyles( { "background-color": "red"} );
    }
    else
    {
        el.setStyles( { "background-color": "white"} );
    }
}

答案 2 :(得分:1)

我建议您获取文档高度,并将该高度用作页面顶部到底部之间的长度。所以:

var bottom = $(document).height() // == the bottom of your page

你可以选择与你想要的底部距离的负数。

If( ( el.scrollTop() + el.outherHeight ) >= ( bottom - 200 ) ){
    // fetch new data

    // Don't forget to upate the bottom variable when data fetched and renderd
}

希望这能解决您的问题,或者至少帮助您找到解决方案。如果没有,请告诉我