JS--上划加载更多js代码

原生代码是

<div class="tab">
    <a href="javascript:;" class="item cur">菜单一</a>
    <a href="javascript:;" class="item">菜单二</a>
</div>
<div class="content">
    <div class="lists"></div>
</div>
<link rel="stylesheet" href="./dropload.css">
<script src="./jsdropload.min.js"></script>
<script>
$(function(){
    var itemIndex = 0;
    var tab1LoadEnd = false;
    var tab2LoadEnd = false;
    // tab
    $('.tab .item').on('click',function(){
        var $this = $(this);
        itemIndex = $this.index();
        $this.addClass('cur').siblings('.item').removeClass('cur');
        $('.lists').eq(itemIndex).show().siblings('.lists').hide();

        // 如果选中菜单一
        if(itemIndex == '0'){
            // 如果数据没有加载完
            if(!tab1LoadEnd){
                // 解锁
                dropload.unlock();
                dropload.noData(false);
            }else{
                // 锁定
                dropload.lock('down');
                dropload.noData();
            }
        // 如果选中菜单二
        }else if(itemIndex == '1'){
            if(!tab2LoadEnd){
                // 解锁
                dropload.unlock();
                dropload.noData(false);
            }else{
                // 锁定
                dropload.lock('down');
                dropload.noData();
            }
        }
        // 重置
        dropload.resetload();
    });

    var counter = 0;
    // 每页展示4个
    var num = 4;
    var pageStart = 0,pageEnd = 0;

    // dropload
    var dropload = $('.content').dropload({
        scrollArea : window,
        loadDownFn : function(me){
            // 加载菜单一的数据
            if(itemIndex == '0'){
                $.ajax({
                    type: 'GET',
                    url: 'json/more.json',
                    dataType: 'json',
                    success: function(data){
                        var result = '';
                        counter++;
                        pageEnd = num * counter;
                        pageStart = pageEnd - num;

                        if(pageStart <= data.lists.length){
                            for(var i = pageStart; i < pageEnd; i++){
                                result +=   '<a class="item opacity" href="'+data.lists[i].link+'">'
                                                +'<img src="'+data.lists[i].pic+'" alt="">'
                                                +'<h3>'+data.lists[i].title+'</h3>'
                                                +'<span class="date">'+data.lists[i].date+'</span>'
                                            +'</a>';
                                if((i + 1) >= data.lists.length){
                                    // 数据加载完
                                    tab1LoadEnd = true;
                                    // 锁定
                                    me.lock();
                                    // 无数据
                                    me.noData();
                                    break;
                                }
                            }
                            // 为了测试,延迟1秒加载
                            setTimeout(function(){
                                $('.lists').eq(itemIndex).append(result);
                                // 每次数据加载完,必须重置
                                me.resetload();
                            },1000);
                        }
                    },
                    error: function(xhr, type){
                        alert('Ajax error!');
                        // 即使加载出错,也得重置
                        me.resetload();
                    }
                });
            // 加载菜单二的数据
            }else if(itemIndex == '1'){
                $.ajax({
                    type: 'GET',
                    url: 'json/update.json',
                    dataType: 'json',
                    success: function(data){
                        var result = '';
                        for(var i = 0; i < data.lists.length; i++){
                            result +=   '<a class="item opacity" href="'+data.lists[i].link+'">'
                                            +'<img src="'+data.lists[i].pic+'" alt="">'
                                            +'<h3>'+data.lists[i].title+'</h3>'
                                            +'<span class="date">'+data.lists[i].date+'</span>'
                                        +'</a>';
                        }
                        // 为了测试,延迟1秒加载
                        setTimeout(function(){
                            $('.lists').eq(itemIndex).append(result);
                            // 每次数据加载完,必须重置
                            me.resetload();
                        },1000);
                    },
                    error: function(xhr, type){
                        alert('Ajax error!');
                        // 即使加载出错,也得重置
                        me.resetload();
                    }
                });
            }
        }
    });
});
</script>

经过自己二次开发后的代码是:
 

  <script src="./dropload.min.js"></script>
  <link rel="stylesheet" href="./dropload.css">
  <div class="lists">
    <div class=" swiper-box">
        <div class="swiper_item" id="course">
            <div class="list_swiper "></div>
        </div>
    </div>
  </div>
  <!-- 下拉加载 -->
  <script type="text/javascript">
  $(function(){
      var url     = "http://files.guanfu.com.cn"; 
      //菜单标识符
      var itemIndex   = 0;  
      //是否数据加载完毕
      var tab1LoadEnd = false;
      //请求次数
      var counter     = 0;
      // 每页展示8个
      var num         = 8;
      // 初始化开始
      var pageEnd   = counter*num,pageStart = pageEnd - num;
      // dropload  下拉加载
      var dropload = $('.lists').dropload({
          scrollArea : window,
          loadDownFn : function(me){
            // 加载菜单一的数据
            if(itemIndex == '0'){
                //ajax获取全部数据
                $.ajax({
                    type: 'GET',
                    url: "trip.php?act=data",
                    dataType: 'json',
                    success: function(data){
                        var result = ''; //获取当前数据的偏移值
                        counter++;       //拉取数据次数
                        pageEnd = num * counter;//最大的偏移值 16  24
                        pageStart = pageEnd - num; //8,16
                        if(pageStart <= data.length){//data.length是全部数据的个数
                            for(var i = pageStart; i < pageEnd; i++){
                                  result +=   '<a class="go_url" href="'+data[i].perpetual_url+'">'
                                                  +'<div class="course_item">'
                                                    +'<img class="slide-image" src="'+data[i].cover_url+'">'
                                                    +'<div class="infos">'
                                                      +'<div class="title overflow">'+data[i].title+'</div>'
                                                    +'</div>'
                                                  +'</div>'
                                              +'</a>';
                                if((i + 1) >= data.length){ //这里是限制条件 一旦循环的i超过data.length 那么立即停止加载 锁定
                                    // 数据加载完
                                    立即停止= true;
                                    // 锁定
                                    me.lock();
                                    // 无数据
                                    me.noData();
                                    break;
                                }
                            }
                            // 为了测试,延迟1秒加载
                            setTimeout(function(){
                                $('.list_swiper').eq(itemIndex).append(result);
                                // 每次数据加载完,必须重置
                                me.resetload();
                            },1000);
                        }
                    },
                    error: function(xhr, type){
                        alert('Ajax error!');
                        // 即使加载出错,也得重置
                        me.resetload();
                    }
                });
              }
            }
          });
  });
  </script>

疑惑:一开始我以为是拉取一次执行一次ajax,后来通过打印数据得知是一次拉取全部数据,然后去数据中找偏移量载入

目标修改:去那些数据就去数据库中找哪些数据   不能 全部获取 

 

还有广告轮播js也需要注意一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值