微信小程序 scroll-view实现上拉加载与下拉刷新的实例


Posted in Javascript onJanuary 21, 2017

微信小程序 scroll-view实现上拉加载与下拉刷新的实例

实现效果图:

微信小程序 scroll-view实现上拉加载与下拉刷新的实例

如图,使用小程序的scroll-view实现的上拉加载数据,下拉刷新数据,试下代码如下:

js文件代码:

var url = "http://192.168.30.4:8080/gtxcx/carrier/getCarrier.action"; 
var page = 1; 
 
var GetList = function (that) { 
 that.setData({ 
 hidden: false 
 }); 
 wx.request({ 
 url: url, 
 data: { 
  pageSize: 10, 
  pageNo: page 
 }, 
 success: function (res) { 
  var l = that.data.list 
  for (var i = 0; i < res.data.length; i++) { 
  l.push(res.data[i]) 
  } 
  that.setData({ 
  list: l 
  }); 
  page++; 
  that.setData({ 
  hidden: true 
  }); 
 } 
 }); 
} 
Page({ 
 data: { 
 hidden: true, 
 list: [], 
 scrollTop: 0, 
 scrollHeight: 0 
 }, 
 onLoad: function () { 
 var that = this; 
 wx.getSystemInfo({ 
  success: function (res) { 
  console.info(res.windowHeight); 
  that.setData({ 
   scrollHeight: res.windowHeight 
  }); 
  } 
 }); 
 }, 
 onShow: function () { 
 var that = this; 
 GetList(that); 
 }, 
 bindDownLoad: function () { 
 var that = this; 
 GetList(that); 
 }, 
 scroll: function (event) { 
 this.setData({ 
  scrollTop: event.detail.scrollTop 
 }); 
 }, 
 refresh: function (event) { 
 page = 1; 
 this.setData({ 
  list: [], 
  scrollTop: 0 
 }); 
 GetList(this) 
 }, 
 onPullDownRefresh: function () { 
 console.log("下拉") 
 }, 
 onReachBottom: function () { 
 console.log("上拉"); 
 } 
})

json文件代码

{ 
 "navigationBarTitleText": "下拉刷新", 
 "enablePullDownRefresh": true, 
 "backgroundTextStyle": "dark" 
}

wxml文件代码:

<view class="container"> 
 <scroll-view scroll-top="{{scrollTop}}" scroll-y="true" style="height:{{scrollHeight}}px;" 
 class="list" bindscrolltolower="bindDownLoad" bindscroll="scroll" bindscrolltoupper="refresh"> 
 <view class="item" wx:for="{{list}}"> 
  <image class="img" src="https://cdn.kuaidi100.com/images/all/56/zhongtong.png"></image> 
  <view class="text"> 
  <text class="title">{{item.carrierName}}</text> 
  <text class="description">{{item.carrierTelphone}}</text> 
  <text class="description">{{item.carrierId}}</text> 
  </view> 
 </view> 
 </scroll-view> 
 <view class="body-view"> 
 <loading hidden="{{hidden}}" bindchange="loadingChange"> 
  加载中... 
 </loading> 
 </view> 
</view>

wxss文件代码

.container{ 
 height: 100%; 
 padding: 20rpx; 
} 
 
.item{ 
 display: flex; 
 margin-bottom: 50rpx; 
width:100%; 
background:#f0f0f0; 
overflow:hidden; 
} 
 
.img{ 
 height: 100rpx; 
 width: 100rpx; 
 border-radius: 50%; 
} 
 
.text{ 
 display: flex; 
 flex-shrink:1; 
 flex-grow:1; 
 padding: 10rpx; 
 flex-wrap: wrap; 
 font-size: 50rpx; 
} 
 
.title{ 
 font-size: 50rpx; 
 margin:10rpx 100rpx 10rpx 100rpx; 
} 
.description{ 
 font-size: 50rpx; 
 align-self:flex-end; 
}

注意,

http://192.168.30.4:8080/gtxcx/carrier/getCarrier.action这个接口就是更具传入的页数,每次返回不同数据。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
js传值 判断
Oct 26 Javascript
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
Aug 12 Javascript
JQuery.get提交页面不跳转的解决方法
Jan 13 Javascript
js实现鼠标划过给div加透明度的方法
May 25 Javascript
jquery实现点击展开列表同时隐藏其他列表
Aug 10 Javascript
JavaScript常用判断写法大全(推荐)
May 30 Javascript
vue.js入门教程之绑定class和style样式
Sep 02 Javascript
微信小程序图表插件(wx-charts)实例代码
Jan 17 Javascript
使用watch监听路由变化和watch监听对象的实例
Feb 24 Javascript
浅谈Javascript中的对象和继承
Apr 19 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
Jul 20 Javascript
JQuery使用数组遍历跳出each循环
Sep 01 jQuery
JS常用知识点整理
Jan 21 #Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
Jan 21 #Javascript
原生js实现可拖动的登录框效果
Jan 21 #Javascript
微信小程序 WebSocket详解及应用
Jan 21 #Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
Jan 21 #Javascript
遍历json获得数据的几种方法小结
Jan 21 #Javascript
新闻上下滚动jquery 超简洁(必看篇)
Jan 21 #Javascript
You might like
PHP一些有意思的小区别
2006/12/06 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
PHP isset()及empty()用法区别详解
2020/08/29 PHP
JS面向对象编程之对象使用分析
2010/08/19 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
2016/05/31 Javascript
js实现常见的工具条效果
2017/03/02 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python 递归函数详解及实例
2016/12/27 Python
Python实现的简单计算器功能详解
2018/08/25 Python
pybind11在Windows下的使用教程
2019/07/04 Python
Python csv文件的读写操作实例详解
2019/11/19 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
Python3获取cookie常用三种方案
2020/10/05 Python
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
技术总监岗位职责
2013/12/05 职场文书
简历中个人自我评价范文
2013/12/26 职场文书
测控技术与仪器个人求职信范文
2013/12/30 职场文书
办公室主任个人对照检查材料思想汇报
2014/10/11 职场文书
长城的导游词
2015/01/30 职场文书
八一建军节慰问信
2015/02/14 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
MySQL日期时间函数知识汇总
2022/03/17 MySQL
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL