• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

转载:移动端+微信小程序实现,手机端滑动分页代码思路(ajax) ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

//一般在PC上我们要分页都是通过上一页和下一页来实现的,手机通过当下滑到一定程度的时候自动加载下一页面
//实现思路:首先加载部分数据,当下滑到某个元素可见的时候,如果还有数据,则新发送请求,然后追加在当前页面

一、PC端

/*
*<div class=\'topicBox\' id=\'listBox\'>
*</div>
*/

 

//判断元素是否进入可视区域 
function see(objLiLast) {
    //浏览器可视区域的高度 
    var see = document.documentElement.clientHeight;
    //滚动条滑动的距离 
    var winScroll = $(this).scrollTop();
    //距离浏览器顶部的 
    var lastLisee = $(objLiLast).offset().top;
    return lastLisee < (see + winScroll) ? true : false;
}
//预设页码为当前第一页
var page = 1;
//获得总页码
var pageTotal = parseInt($(\'#allpage\').val());
//是否请求出AJAX的“开关”; 
var onOff = true;
$(window).scroll(function () {
//拖动滚条时,是否发送AJAX的一个“开关” 
$(\'.topicBox\').each(function () {
//引用最后一个div 
var lastLi = $(\'.topicBox:last\');
//调用是否进入可视区域函数 
var isSee = see(lastLi);
if (isSee && onOff && page < pageTotal) {//最底部元素可见,开关开启而且还有下拉
//$(\'#loadNext\').show(); //显示正在加载图标
onOff = false;
$.ajax({
url: \'/GetPageData\',
type: \'GET\',
dataType: \'json\',
data: {
page: page+1
},
asyc: false,
success: function (result) {
if (result.status == \'success\') {
var data = result.result;
for (var i = 0; i < data.length; i++) {
//to do coding ...
};
}
//$(\'#loadNext\').hide(); //隐藏正在加载
onOff = true;
page ++;
}
});

}
});
});

 

二、微信小程序端:wxml

<scroll-view class="scroll-container" upper-threshold="{{sortPanelDist}}"  scroll-y="true" style="height:{{scrollHeight}}px;" bindscrolltolower="bindDownLoad">

<!-- 上面的scrollHeight参数必须要的,不然没法进行下一步,我这里为了兼容手机屏幕,使用的获取系统自适应高度 -->

<view class="con12"> 
  <block wx:for="{{homeList}}" wx:for-item="homeList" wx:for-index="index"> 
  <navigator url="../home_detail/home_detail?home_id={{homeList.s_id}}">
    <view class="index1-list">
       <image src="{{homeList.pic_url}}" class="indeximg">
       <span class="money">¥{{homeList.price}}</span>
       </image>
       <span class="cunhome-title">西厢房 · {{homeList.vil_name}}--{{homeList.s_title}}</span>
       <view class="describe">
         {{homeList.s_desc}}
        </view>
     </view>
  </navigator>
    </block>
 </view>
<!-- 上面是循环的数据 -->

</scroll-view>

js

var page = 1;
// 获取数据的方法,具体怎么获取列表数据大家自行发挥
var GetList = function (that) {
 wx.request({
    url: \'https://m.xxiangfang.com/index.php/Home/Xiaoxxf/home_service\',  //民宿预订
    data: {
      page: page
    },
    header: {
      \'Content-Type\': \'application/json\'
    },
    method: \'GET\',
    success: function (res) {
      that.setData({
        homeList: res.data
      })
      page++;
    },
    fail: function (res) { },
    complete: function (res) { },
  })
}

Page({
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that = this;
    //缓冲提醒
    wx.showToast({
      title: \'加载中\',
      icon: \'loading\',
      duration: 400
    })
    //获取系统的参数,scrollHeight数值,微信必须要设置style:height才能监听滚动事件
    wx.getSystemInfo({
      success: function (res) {
        console.info(res.windowHeight)
        that.setData({
          scrollHeight: res.windowHeight
        })
      }
    });
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    var that = this;
    GetList(that);     //页面初次展示调用第一次数据,比如说5条记录
  },
  bindDownLoad: function () {
    //   该方法绑定了页面滑动到底部的事件,下拉一次请求一次数据
    wx.showToast({
      title: \'加载中\',
      icon: \'loading\',
      duration: 400
    })
    var that = this;
    GetList(that);        //页面拉一次,加载一次
  },

})

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序-Request|路由跳转|本地存储发布时间:2022-07-18
下一篇:
微信小程序前端与myeclipse的数据交换过程(SSH)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap