微信小程序实现滚动加载更多的代码


Posted in Javascript onDecember 06, 2019

1.需要用到的组件和api

scroll-view(可滚动视图区域)

wx.showToast(OBJECT)显示消息提示窗----显示loading小菊花用的

2.需要用到的属性

微信小程序实现滚动加载更多的代码

微信小程序实现滚动加载更多的代码

微信小程序实现滚动加载更多的代码

 3.scrol-view需要指定一个高度,这个高度可以按自己的需求计算,我使用的是屏幕可用高度并且默认一页显示6个

微信小程序实现滚动加载更多的代码

4.滚动到底部绑定需要触发的事件

<scroll-view scroll-y='true' style="height:{{height}}px" bindscrolltolower='lower'>

5.操作事件函数,主要是将请求下来的数据用concat方法进行合并,然后赋值,我是用的for循环假装添加的数据,实际项目中可以换成自己的ajax,并且为了模拟加载我添加了一个1.5秒的定时器,先调用提示框api成功之后关闭

lower() {
  var result = this.data.res;
  var resArr = [];
//这里可以使用自己的ajax
  for (let i = 0; i < 10; i++) {
   resArr.push(i);
  };
  var cont = result.concat(resArr);//合并请求的数据
  console.log(resArr.length);
  if (cont.length >= 100) {
   wx.showToast({ //期间为了显示效果可以添加一个过度的弹出框提示“加载中” 
    title: '我也是有底线的',
    icon: 'success',
    duration: 300
   });
   return false;
  } else {
   wx.showLoading({ //期间为了显示效果可以添加一个过度的弹出框提示“加载中” 
    title: '加载中',
    icon: 'loading',
   });
   setTimeout(() => {
    this.setData({
     res: cont
    });
    wx.hideLoading();
   }, 1500)
  }
 }

  6.成功,放完整代码可以直接复制运行

wxml代码

<view class='box'>
<scroll-view scroll-y='true' style="height:{{height}}px" bindscrolltolower='lower'>
 <view wx:for="{{res}}" data-id="{{index}}" wx:key="{{index}}" style="height:{{(height/6)-1}}px;width:100%;text-align:center;line-height:{{(height/6)-1}}px; border-bottom:1px solid #ccc">{{item}}</view>
</scroll-view>
</view>

 js代码

Page({

 /**
  * 页面的初始数据
  */
 data: {
  height: '',
  res: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 },
 lower() {
  var result = this.data.res;
  var resArr = [];
  for (let i = 0; i < 10; i++) {
   resArr.push(i);
  };
  var cont = result.concat(resArr);
  console.log(resArr.length);
  if (cont.length >= 100) {
   wx.showToast({ //如果全部加载完成了也弹一个框
    title: '我也是有底线的',
    icon: 'success',
    duration: 300
   });
   return false;
  } else {
   wx.showLoading({ //期间为了显示效果可以添加一个过度的弹出框提示“加载中” 
    title: '加载中',
    icon: 'loading',
   });
   setTimeout(() => {
    this.setData({
     res: cont
    });
    wx.hideLoading();
   }, 1500)
  }
 },
 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
  wx.getSystemInfo({
   success: (res) => {
    this.setData({
     height: res.windowHeight
    })
   }
  })
 }
})

总结

以上所述是小编给大家介绍的微信小程序实现滚动加载更多的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
javascript下过滤数组重复值的代码
Sep 10 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
Nov 30 Javascript
关于js注册事件的常用方法
Apr 03 Javascript
jquery1.9 下检测浏览器类型和版本的方法
Dec 26 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
Aug 03 Javascript
原生JavaScript实现AJAX、JSONP
Feb 07 Javascript
Bootstrap一款超好用的前端框架
Sep 25 Javascript
Angular 5.0 来了! 有这些大变化
Nov 15 Javascript
laravel-admin 与 vue 结合使用实例代码详解
Jun 04 Javascript
ES6 Iterator接口和for...of循环用法分析
Jul 31 Javascript
微信小程序实现图片压缩
Dec 03 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
Sep 11 Javascript
微信小程序实现滑动翻页效果(完整代码)
Dec 06 #Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
Dec 06 #Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
Dec 06 #Javascript
微信小程序激励式视频广告组件使用详解
Dec 06 #Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
Dec 06 #Javascript
vue中监听路由参数的变化及方法
Dec 06 #Javascript
详解ECMAScript2019/ES10新属性
Dec 06 #Javascript
You might like
php异常处理技术,顶级异常处理器
2012/06/13 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
PHP反射原理与用法深入分析
2019/09/28 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
javascript 自动转到命名锚记
2009/01/10 Javascript
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
jQuery $命名冲突解决方案汇总
2014/11/13 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
layui使用label标签的方法
2019/09/14 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
js实现3D旋转相册
2020/08/02 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
简介Python中用于处理字符串的center()方法
2015/05/18 Python
python学习教程之使用py2exe打包
2017/09/24 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
python numpy和list查询其中某个数的个数及定位方法
2018/06/27 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
法律进机关实施方案
2014/03/12 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
中学生自我评价2015
2015/03/03 职场文书
2015年加油站工作总结
2015/05/13 职场文书
总经理聘用协议书
2015/09/21 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书