jq和js实现滚动加载

首先纪律性的定义page和isLoading

var page = 0;
var isLoading = false;
// 获取商家列表
function getList(){
  page++;
  isLoading = true;
  $.getJSON("../json/homelist.json", 
     (data, textStatus, jqXHR) => {
      console.log("我是商家列表数据组a",data);
      var list = data.data.poilist || [];
      initContentList(list);
      isLoading = false;      
    }
  );
}

在函数开始加载的时候page++,同时转换isLoading,在AJAX载入完成后调转isLoading

function addEvent(){
  window.addEventListener('scroll', ()=>{
    var clientHeight = document.documentElement.clientHeight;
    var scrollHeight = document.body.scrollHeight;
    var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
    var prodis = 30;
    if(clientHeight+scrollTop >= (scrollHeight-30)){
      //最多滚动三页
      if(page<3){
        //在ajax请求时避免多次加载
        if(isLoading){
          return;
        }
        getList();
      }
    }
  })
}

prodis是额外的缓冲距离,免得直接看到底部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值