【问题标题】:transforming lazy loading with more button to scroll使用更多按钮转换延迟加载以滚动
【发布时间】:2014-09-15 18:32:21
【问题描述】:

我可以将我下面的带有更多按钮的延迟加载转换为带有滚动加载的延迟加载吗?

function openFromButton(lastLoadedIndex) {
    lastLoadedIndex = (typeof(lastLoadedIndex)=='undefined') ? '' : lastLoadedIndex;
    jQuery.get('liste.asp?from_item='+ lastLoadedIndex +'&param='+(new Date()).getTime(), function(data) { 
//alert(data);
        jQuery("#liste_body").append(data);
    });

这是我到目前为止所做的,它工作正常,但问题是当我垂直或水平滚动时它会加载。我怎样才能让它在垂直滚动上工作?

function addEvent( obj, type, fn ) {
    if ( obj.attachEvent ) {
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
        obj.attachEvent( 'on'+type, obj[type+fn] );
    } else
        obj.addEventListener( type, fn, false );
    }
    addEvent(window, 'scroll', function(event) {
    openFromButton();
});

【问题讨论】:

  • 不需要asp-classic标签;使用javascript 标签可能会得到更多结果...
  • 您必须在与滚动相关的事件上触发加载操作,而不是单击按钮。如需灵感,请参阅stackoverflow.com/questions/21561480/…
  • 只需添加一个滚动监听器并在距离底部 X 像素时调用该函数。
  • @Jeff 当我意识到我的打字错误时,我编辑了我的帖子;你可能已经在刷新并确定我是否纠正了我的错误之前发表了评论
  • @Jeff: PS - 你拼错了edited! ;o)

标签: javascript jquery


【解决方案1】:

这是对我有用的解决方案,在 chrome、firefox 和 IE 上进行了测试

   var lastScrollTop = 0;
  $(window).scroll(function(event){
      var st = $(this).scrollTop();
          if (st > lastScrollTop){
            Load()
          } else {
                  }
     lastScrollTop = st;
    });

编辑: 注意 $(this).scrollTop();在 IE 8 上不起作用,为了使它起作用,我用 document.body.scrollTop 替换了它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-01
    • 2023-04-04
    • 1970-01-01
    • 2011-01-11
    • 2012-08-08
    • 1970-01-01
    • 2023-03-24
    • 2023-02-19
    相关资源
    最近更新 更多