无限滚动加载(第一次请求完成后才发第二次请求)

var time1;
var srcollOld = 0,srcollNow = 0,scrollFun = false;
$(window).scroll(function () {
   //$(window).scrollTop()这个方法是当前滚动条滚动的距离
   //$(window).height()获取当前窗体的高度
   //$(document).height()获取当前文档的高度
   
    var bot = 50;  //bot是底部距离的高度
    if ((bot  +  $(window).scrollTop() )  >=  ($(document).height() - $(window).height())) {
          srcollNow = $(window).scrollTop();
          if(srcollNow >= srcollOld){
              if(!scrollFun){
              //第一次请求完成后才发第二次请求
                  scrollFun = true;
                  clearTimeout(time1);
                  time1=window.setTimeout(function(){
                      loadAjax()
                  },500);
              }
          }
          srcollOld = srcollNow;
      }
});

function loadAjax(){
    $.ajax({
        url: url,
        type: type,
        success:function (data) {
            scrollFun = false;
            if (data.success == true) {
            }else{
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            scrollFun = false;
        }
    });
}

VUE 滚动到底部加载数据

mounted(){ this.$refs.viewBox.addEventListener('scroll', this.loadingMore, false); this.getActivtyList() }, methods: { getActivtyList(){ }, loadingMore(){ //变量scrollTop是滚动条滚动时,距离顶部的距离 var scrollTop = this.$refs.viewBox.scrollTop; //变量windowHeight是可视区的高度 var windowHeight = this.$refs.viewBox.clientHeight; //变量scrollHeight是滚动条的总高度 var scrollHeight = this.$refs.viewBox.scrollHeight; //滚动条到底部的条件 if(scrollTop+windowHeight==scrollHeight){ //写后台加载数据的函数 console.log("距顶部"+scrollTop+"可视区高度"+windowHeight+"滚动条总高度"+scrollHeight); if(Math.ceil(this.total/this.pageSize) > this.pageNo){ this.pageNo += 1; this.getActivtyList() } } } }

你可能感兴趣的:(javascript)