微信小程序实现下滑到底部自动翻页功能


Posted in Javascript onMarch 07, 2020

前言

这段时间接了一个微信小程序项目,从此打开小程序的新世界大门。然后发现使用页码进行翻页已经不适用于手机app,我们日常中实用的手机app或者小程序进行翻页一般都是使用底部后下拉的方式。

解决思路

我发现微信小程序远程组件提供了一个scroll-view(可滚动视图区域),这个组件中有个属性,bindscrolltolower能够监听区域内滑到了最后一个位置。这就能用来解决和实现我们提出的问题。当用户滑到最后一个元素,触发函数,我们在该函数中请求下一页的数据,然后追加到展示列表里。ps:需要一个变量来存储当前页码

微信小程序实现下滑到底部自动翻页功能

实现

wxml:

<scroll-view class="scroll_view" scroll-y bindscrolltolower="nextPage">
 <view style="height:100vh">
  <block wx:for="{{lists}}" wx:for-index="index" wx:for-item="item" wx:key="unique">
   <view style="height:10vh;border:1rpx solid red">
    {{item}}
   </view>
  </block>
 </view>
</scroll-view>

wxss:

.scroll_view{
 height:100vh;
}

js:

Page({

 data: {
  lists: [],
  page: 1
 },
 //监听是否滑到底部
 nextPage: function () {
  let new_lists = [];
  let page = this.data.page;
  let startindex = page * 10 + 1;
  console.log("第" + page + "页滑到底部了,请求第" + (page + 1) + "页");
  page += 1;
  //模拟请求
  for (let i = startindex; i <= startindex + 9; i++) {
   new_lists.push(i);
  }
  this.setData({ lists: this.data.lists.concat(new_lists), page: page });
 },
 onLoad: function (options) {
  let lists = [];
  //模拟请求
  for (let i = this.data.page; i <= this.data.page + 9; i++) {
   lists.push(i)
  }
  this.setData({ lists: lists, });
 },
})

效果:

微信小程序实现下滑到底部自动翻页功能

说明

我这里没有做判断是否请求到最后一页,我们一般后台逻辑是当请求当前页码为空时说明上一页已经是最后一页了。我们可以在nextPage函数论进行相应的逻辑判断处理,我这里就不展示了,大家自己实现,不会的给我留个言。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
Feb 27 Javascript
JS模块与命名空间的介绍
Mar 22 Javascript
jQuery插件的写法分享
Jun 12 Javascript
jquery实现炫酷的叠加层自动切换特效
Feb 01 Javascript
js检测用户输入密码强度
Oct 22 Javascript
Bootstrap每天必学之下拉菜单
Nov 25 Javascript
学习JavaScript设计模式之单例模式
Jan 19 Javascript
AngularJS 限定$scope的范围实例详解
Jun 23 Javascript
vue 2.0封装model组件的方法
Aug 03 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
May 16 Javascript
3分钟读懂移动端rem使用方法(推荐)
May 06 Javascript
解决layer弹出层中表单不起作用的问题
Sep 09 Javascript
js实现选项卡效果
Mar 07 #Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
Mar 07 #Javascript
js实现简单放大镜效果
Mar 07 #Javascript
js实现文字头像的生成代码
Mar 07 #Javascript
JavaScript队列结构Queue实现过程解析
Mar 07 #Javascript
原生JS实现萤火虫效果
Mar 07 #Javascript
JavaScript实现轮播图片完整代码
Mar 07 #Javascript
You might like
PHP开发过程中常用函数收藏
2009/12/14 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
Smarty模板语法详解
2019/07/20 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
javascript 运算数的求值顺序
2011/08/23 Javascript
JS上传前预览图片实例
2013/03/25 Javascript
基于jquery插件实现常见的幻灯片效果
2013/11/01 Javascript
关于JavaScript的变量的数据类型的判断方法
2015/08/14 Javascript
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python获取mp3文件信息的方法
2015/06/15 Python
python删除文本中行数标签的方法
2018/05/31 Python
python是否适合网页编程详解
2019/10/04 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
护士专业推荐信
2013/11/02 职场文书
家长学校实施方案
2014/03/15 职场文书
死亡赔偿协议书
2015/01/28 职场文书
房屋认购协议书
2015/01/29 职场文书
2015教师年度考核评语
2015/03/25 职场文书
培训讲师开场白
2015/06/01 职场文书
反邪教教育心得体会
2016/01/15 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP
基于Go语言构建RESTful API服务
2021/07/25 Golang
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技