通过jQuery写一个自动“加载更多”的功能

最近我的网站有这么一个业务需求:对用户查询出来得数据进行分页,一页显示10个。而我有不想做传统意义上的分页了,想做一个加载更多的功能。

业务逻辑:判断滚动条的位置,当滚动条接近文章底部的时候,就通过ajax请求数据,并且将数据添加到文章列表的后面。

下面是我写的具体的逻辑代码

<!--下滑加载更多-->
<script type="text/javascript">
      $(function(){
      // 页数
      var page = 1;
      //获取文章总数量
      var query_length=${requestScope.search.query_length };
      //获取页数
      var maxpage= Math.ceil(query_length/10);
      //获取搜索条件
      var keyword = $('.insearch').val();
      var end=0;
 
     
     
    $(window).bind("scroll",function(){
    
      if ($(document).scrollTop() + document.body.clientHeight >= ($(document).height()-300)) {
         if(end==1){
         return false;
         }
         page++;
         end=1;
         if(page>maxpage){
         return false;
         }
          
         //进行ajax操作
           $.ajax({
            
             type: 'post',
                  contentType: "application/json;charset=utf-8",
                  dataType:"json",
                  data:JSON.stringify({
                  q:$.trim($('.insearch').val()),
                  p:$.trim(page)
                  }),
                  url: './search/query_more.action',
             //如果接收成功
                  success: function(data){
                   
                  var li_list="";
                  var li_string="";
                  //对此进行遍历
                 for(var i=0;i<data.length;i++){
                 li_string="<li class=\"clearfix\"><div class=\"new_text\" style=\"float: left;width: 100%;\"><a  class=\"l_text\" href=\"./p/"+data[i].article_id+".html\" style=\"padding-bottom: 0px;\"><h2 class=\"title\">"+data[i].article_title+"</h2><p>"+data[i].article_summary+"</p></a></div></li>";
                 
                li_list+=li_string;
                 
                 }
                  $('.post_list').append(li_list);
                  end=0;
                  
                  },error: function(xhr, type){
                    alert('Ajax error!');
                  }
            
           });
         
     
       
   };
     
    });
       
       
     
  });
  </script> 

首先是将文章的页数置为1,然后根据文章的总数量,通过js的函数获取应该有多少页。

然后,我们通过滚动事件,进行滚动,然后通过ajax去取数据,并且将返回的json数据遍历,append到文章列表后面。
本文链接 https://inx.fun/p/530.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值