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


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 相关文章推荐
学习YUI.Ext 第七天--关于View&amp;JSONView
Mar 10 Javascript
JavaScript 对话框和状态栏使用说明
Oct 25 Javascript
JQuery 遮罩层实现(mask)实现代码
Jan 09 Javascript
jQuery中removeData()方法用法实例
Dec 27 Javascript
JS字符串按逗号和回车分隔的方法
Apr 25 Javascript
Vue keep-alive实践总结(推荐)
Aug 31 Javascript
浅谈mint-ui loadmore组件注意的问题
Nov 08 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
Apr 13 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
Jun 10 jQuery
这15个Vue指令,让你的项目开发爽到爆
Oct 11 Javascript
详解Angular Karma测试的持续集成实践
Nov 15 Javascript
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 Vue.js
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中for循环语句的几种变型
2007/03/16 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
2016/11/25 Javascript
vue2.0实现分页组件的实例代码
2017/06/22 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
vue+springmvc导出excel数据的实现代码
2018/06/27 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
Django实现的自定义访问日志模块示例
2017/06/23 Python
django如何连接已存在数据的数据库
2018/08/14 Python
Django框架中间件(Middleware)用法实例分析
2019/05/24 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
用Python 执行cmd命令
2020/12/18 Python
法学专业个人求职信
2013/09/26 职场文书
大学生求职简历的自我评价
2013/10/14 职场文书
保安拾金不昧表扬信
2014/01/15 职场文书
Python基础知识学习之类的继承
2021/05/31 Python
总结Java对象被序列化的两种方法
2021/06/30 Java/Android
mysql事务对效率的影响分析总结
2021/10/24 MySQL
尝试使用Python爬取城市租房信息
2022/04/12 Python