pbootcms ajax 无刷新加载下一页技术

时间:2023年09月24日

/

来源:网络

/

编辑:佚名

js代码:
//先定义一些基本的内容
//Page就是第几页,由当前页{page:current} + 1,就是第二页,parseInt确保该数值是Int类型。
var Page = parseInt('{page:current}') + 1;
//Num就是每页几条信息,因为列表默认显示的是2条,所以这里设为2,结合上面的第二页实际上就是从第三条信息开始读取。
var Num  = 6;
//定义内容的Dom位置,也就是读取出来的内容要添加到哪个div里面去。
var Dom  = jQuery('#listbox');
jQuery(window).scroll(function(){
//当前窗口和页面顶部的距离
var WindowTop = jQuery(window).scrollTop();
//可视窗口区域高度
var WindowHeight = jQuery(window).outerHeight();
//页面的高度
var DocHeight = jQuery(document).height();
//定义一个开关
var load = true;
//定义当前栏目id
var Scodeid = {sort:scode};
//判断:(窗口与页面顶部距离 + 窗口高度) >= 页面的高度(也就是滚动到页面底部的时候),并且开关是开启状态,执行ajax加载内容
  if( ( WindowTop + WindowHeight ) >= DocHeight && load == true ){
  //先构建Api的地址,具体的Api地址参数,请参考官方手册。
  var url = '/api.php/list/' + Scodeid + '/page/' + Page + '/num/' + Num;
  //开始Ajax提交请求,请求路径就是Api接口
  jQuery.ajax({
      //请求类型
      type: 'POST', 
      //请求地址
      url: url,
      //返回数据类型
      dataType: 'json',
      //请求参数,参考官方Api手册
      data: {
          appid: '{pboot:appid}',
          timestamp: '{pboot:timestamp}',
          signature: '{pboot:signature}',
      },
      //请求成功
      success: function( response, status ){
          //定义Data变量为返回的数据
          var Data = response.data;
          if( response.code ){
              //获取数据成功,进行循环,value就是文章对象
              jQuery.each( Data, function( index, value ){
                  //将内容append到列表
                  var Html = '<div class="col-12 col-sm-6 col-md-4 p-3"> <a href="' + value.link + '"><img src="' + value.ico + '" alt=""></a><a href="[list:link]"><h3>' + value.title + '</h3></a></div>';
                  Dom.append( Html );
              });
              //分页+1,下次获取下一页的内容
              Page += 1;
              //设置开关状态为开启,进行下次加载
            load == true;
          }
      },
      //请求失败
      error: function( xhr, status, error ){
          //返回数据异常
          console.log( error );
      }
  })
}})
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。