jQuery:检测到滚动底部不起作用,只检测顶部

Jac*_*ack 10 jquery scroll

所以基本上我的问题看似简单.

您可以在http://furnace.howcode.com上看到它的运行情况(请注意,数据是通过Ajax返回的,所以如果没有任何反应,请给它一些时间!).

什么是有意义的,当你到达滚动的底部时,在第二列,返回接下来的5个结果.

但实际发生的是当你点击滚动区域的TOP时它只返回5个结果.试一试:向下滚动,没有任何反应.向上滚动到顶部,返回结果.

出了什么问题?

这是我正在使用的代码:

$('#col2').scroll(function(){
    if ($('#col2').scrollTop() == $('#col2').height() - $('#col2').height()){
       loadMore();
    }
});
Run Code Online (Sandbox Code Playgroud)

loadMore(); 是获取数据并附加数据的函数.

那么这里出了什么问题?谢谢你的帮助!

Pan*_*agi 24

以下测试,并正常工作:

$(window).scroll(function() {
  if ($(window).scrollTop() == $(document).height() - $(window).height()) {
    loadMore();
  }
});
Run Code Online (Sandbox Code Playgroud)


mun*_*nch 13

这在过去对我有用.

var col = $('#col2');
col.scroll(function(){
   if (col.outerHeight() == (col.get(0).scrollHeight - col.scrollTop()))
       loadMore(); 
});
Run Code Online (Sandbox Code Playgroud)

这也是一个很好的解释.


jor*_*ens 11

如果滚动条位置等于列的高度减去列的高度(等于零),那么你的数学是错误的.这就是为什么你loadMore()的名字在你的col的顶部.

尝试:

$('#col2').scroll(function(){
    if ($('#col2').scrollTop() == $('#col2').height()){
       loadMore();
    }
});
Run Code Online (Sandbox Code Playgroud)