Jquery 滚动事件处理,如Twitter和Facebook

Jquery 滚动事件处理,如Twitter和Facebook,jquery,html,css,scroll,jquery-events,Jquery,Html,Css,Scroll,Jquery Events,我一直在尝试将scroll事件绑定到页面上的一个元素,并在滚动页面上加载更多类似Twitter或Facebook的内容 HTML JS代码 $('#事件列表')。滚动(函数(){ var curScroll=$(this)[0]。scrollTop, maxScroll=$(此)[0]。scrollHeight-$(此).height(); log(curScroll,,:,,maxScroll); 如果((光标>=maxScroll-200)&&!正在加载){ 加载=真; $(这)[0].sc

我一直在尝试将scroll事件绑定到页面上的一个元素,并在滚动页面上加载更多类似Twitter或Facebook的内容

HTML JS代码
$('#事件列表')。滚动(函数(){
var curScroll=$(this)[0]。scrollTop,
maxScroll=$(此)[0]。scrollHeight-$(此).height();
log(curScroll,,:,,maxScroll);
如果((光标>=maxScroll-200)&&!正在加载){
加载=真;
$(这)[0].scrollTop=curScroll;
$('.loading').fadeIn('fast');
如果(第页)参见

scroll事件仅在window、frame、iframe等元素以及溢出的元素上触发:(scroll | auto)
,其内容必须大于可用的宽度/高度。因此,我建议您添加

#event-list {
    overflow: auto;
}
如果您想监听用户何时滚动到特定元素,则应监听窗口的滚动事件,然后检查滚动坐标

$(window).scroll(function() { /** ... **/ });

scroll事件仅在window、frame、iframe等元素以及溢出的元素上触发:(scroll | auto),其内容必须大于可用的宽度/高度。因此,我建议您添加

#event-list {
    overflow: auto;
}
如果您想监听用户何时滚动到特定元素,则应监听窗口的滚动事件,然后检查滚动坐标

$(window).scroll(function() { /** ... **/ });

下面是一个工作示例,我相信您需要滚动事件触发。通过设置“overflow:scroll”,将div用作可滚动区域。注意:只有当列表在初始加载时足够长时,才会获得滚动事件。(请参阅主内容上的height属性。我将让您自行加载ajax。)

CSS

剧本

$(document).ready(function() {
            $('#main-content').scroll(function() {
              var curScroll = $(this)[0].scrollTop,
                  maxScroll = $(this)[0].scrollHeight - $(this).height();

              console.log(curScroll, ' :: ', maxScroll);

              if ((curScroll >= maxScroll - 200) && !loading) {
                  loading = true;

                  $(this)[0].scrollTop = curScroll;

                  $('.loading').fadeIn('fast');

                  if (page <= $('.page').length) {
                      loadMore();
                  }
              }
            });
        });
$(文档).ready(函数(){
$(“#主要内容”)。滚动(函数(){
var curScroll=$(this)[0]。scrollTop,
maxScroll=$(此)[0]。scrollHeight-$(此).height();
log(curScroll,,:,,maxScroll);
如果((光标>=maxScroll-200)&&!正在加载){
加载=真;
$(这)[0].scrollTop=curScroll;
$('.loading').fadeIn('fast');

if(page这里有一个工作示例,我相信您需要滚动事件触发。通过设置“overflow:scroll”,将div用作可滚动区域。注意:只有当列表在初始加载时足够长时,才会获得滚动事件。(请参阅主内容上的height属性。我将让您自行加载ajax。)

CSS

剧本

$(document).ready(function() {
            $('#main-content').scroll(function() {
              var curScroll = $(this)[0].scrollTop,
                  maxScroll = $(this)[0].scrollHeight - $(this).height();

              console.log(curScroll, ' :: ', maxScroll);

              if ((curScroll >= maxScroll - 200) && !loading) {
                  loading = true;

                  $(this)[0].scrollTop = curScroll;

                  $('.loading').fadeIn('fast');

                  if (page <= $('.page').length) {
                      loadMore();
                  }
              }
            });
        });
$(文档).ready(函数(){
$(“#主要内容”)。滚动(函数(){
var curScroll=$(this)[0]。scrollTop,
maxScroll=$(此)[0]。scrollHeight-$(此).height();
log(curScroll,,:,,maxScroll);
如果((光标>=maxScroll-200)&&!正在加载){
加载=真;
$(这)[0].scrollTop=curScroll;
$('.loading').fadeIn('fast');

如果(第页),当您设置身体的css属性时

body {height: 100%;overflow: auto;} // or visible
Now, $(window).scroll();  will not work.

它将导致jquery scroll事件不工作,因为dom不可滚动。因此,您必须删除溢出属性或将其设置为滚动。

当您设置正文的css属性时,如

body {height: 100%;overflow: auto;} // or visible
Now, $(window).scroll();  will not work.

它将导致jquery scroll事件无法工作,因为dom不可滚动。因此必须删除溢出属性或将其设置为滚动。

是否将JS代码放入$(function(){/**here**/})中?如果没有,那么代码执行时元素还没有加载,因此事件没有绑定。我还刚刚读到,在window、frame、iframe和具有溢出的元素上触发了滚动:scroll。所以我想你应该添加溢出:滚动到#事件列表你把JS代码放在$(function(){/**here**/})中了吗?如果没有,那么代码执行时元素还没有加载,因此事件没有绑定。我还刚刚读到,在window、frame、iframe和具有溢出的元素上触发了滚动:scroll。所以我想你应该添加溢出:scroll to#event list如果你想查看,这里有一个工作fiddle示例:这是工作fiddl例如,如果您想查看:
body {height: 100%;overflow: auto;} // or visible
Now, $(window).scroll();  will not work.