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


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 相关文章推荐
jQuery实现默认是闭合的FAQ展开效果菜单
Sep 14 Javascript
jQuery实现简单的点赞效果
May 29 Javascript
原生js三级联动的简单实现代码
Jun 07 Javascript
JS匿名函数类生成方式实例分析
Nov 26 Javascript
原生JavaScript实现AJAX、JSONP
Feb 07 Javascript
jquery拼接ajax 的json和字符串拼接的方法
Mar 11 Javascript
vue中配置mint-ui报css错误问题的解决方法
Oct 11 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
Dec 27 Javascript
vue2 设置router-view默认路径的实例
Sep 20 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
Jan 15 Javascript
vue-cli项目使用mock数据的方法(借助express)
Apr 15 Javascript
解决vue项目router切换太慢问题
Jul 19 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
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
php 生成饼图 三维饼图
2009/09/28 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
php中count获取多维数组长度的方法
2014/11/03 PHP
php筛选不存在的图片资源
2015/04/28 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
php头像上传预览实例代码
2017/05/02 PHP
PHP赋值的内部是如何跑的详解
2019/01/13 PHP
javascript String 的扩展方法集合
2008/06/01 Javascript
基于jquery的loading效果实现代码
2010/11/05 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
跟老齐学Python之再深点,更懂list
2014/09/20 Python
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
六行python代码的爱心曲线详解
2019/05/17 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
物业公司的岗位任命书
2014/06/06 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
2014会计年终工作总结
2014/12/20 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis