网页div中的“无尽滚动”

时间:2014-02-12 06:59:33

标签: javascript jquery html css facebook

我想在页面中创建一个包含无限可滚动内容的div。

为了识别可滚动内容的结尾以便从数据库加载更多数据,我写了以下内容:

$(window).scroll(function(){

  var wintop = $(window).scrollTop(), docheight = $(document).height(), winheight = $(window).height();
  var  scrolltrigger = 0.95;

  if  ((wintop/(docheight-winheight)) > scrolltrigger) {
     lastAddedLiveFunc();
  }
});

问题:以下代码用于创建适合整个网页的无限滚动,但如何为网页内的'div'编写相同内容?

(提示:与Facebook上的Ticker完全类似的是,在右侧显示您朋友最近的实时活动。)

3 个答案:

答案 0 :(得分:1)

原则完全相同。 div将是您的浏览器视口,div内容是您的文档。你只需要交换

  • $(window).scroll() - > $("#someDiv").scroll()
  • $(window).scrollTop() - > $("#someDiv").scrollTop()
  • $(document).height() - > $("#someDiv")[0].scrollHeight
  • $(window).height() - > $("#someDiv").height()

它应该有用。

请注意:

  • scrollHeight是属性,而不是函数。
  • scrollHeight不是jQuery,因此您需要从选择器的实际javascript元素中获取它,因此添加[0]。另一种方法是使用$(“#someDiv”)。prop(“scrollHeight”)。

答案 1 :(得分:0)

$("#yourdiv").scroll(function(){

//your logic
}

您可以使用div代替窗口

例如

$('#yourdiv').scrollTop()  //  etc

答案 2 :(得分:0)

使用此

// get box div position
var box = document.getElementById('box').offsetTop;

window.onscroll = function(){

    // get current scroll position
    var scroll_top = document.body.scrollTop || document.documentElement.scrollTop;

    document.getElementById('scbox').innerText = scroll_top + ' ' + box;

    // if current scroll position >= box div position then box position fixed
    if(scroll_top >= box)
        document.getElementById('box').style.position = 'fixed';
    else
        document.getElementById('box').style.position = 'relative';    
}