微信小程序 列表的上拉加载和下拉刷新的实现


Posted in Javascript onApril 01, 2017

微信小程序可谓是9月21号之后最火的一个名词了,一经出现真是轰炸了整个开发人员,当然很多App开发人员有了一个担心,微信小程序的到来会不会让移动端App颠覆,让移动端的程序员失业,身为一个Android开发者我是不相信的,即使有,那也是需要个一两年的过度和打磨才能实现的吧。

不管微信小程序是否能颠覆当今的移动开发格局,我们都要积极向上的心态去接收,去学习。不排斥新技术,所以,心动不如行动,赶紧先搭建一个微信小程序开发工具。那么接下来就让我们来开始学习列表的上拉加载和下拉刷新的实现吧(通过聚合数据平台获取微信新闻)。

1.介绍几个组件

1.1 scroll-view 组件

微信小程序 列表的上拉加载和下拉刷新的实现

注意:使用竖向滚动时,需要给一个固定高度,通过 WXSS 设置 height。

1.2 image组件

微信小程序 列表的上拉加载和下拉刷新的实现

注意:mode有12种模式,其中3种是缩放模式,9种是裁剪模式。

1.3 Icon组件

微信小程序 列表的上拉加载和下拉刷新的实现

iconType: [ 
‘success', ‘info', ‘warn', ‘waiting', ‘safe_success', ‘safe_warn', 
‘success_circle', ‘success_no_circle', ‘waiting_circle', ‘circle', ‘download', 
‘info_circle', ‘cancel', ‘search', ‘clear' 
]

2.列表的上拉加载和下拉刷新的实现

2.1先来张效果图

微信小程序 列表的上拉加载和下拉刷新的实现

2.2逻辑很简单,直接上代码

2.2.1 detail.wxml 布局文件

<loading hidden="{{hidden}}" bindchange="loadingChange">
 加载中...
 </loading> 
 <scroll-view scroll-y="true" style="height: 100%;" bindscrolltolower="loadMore" bindscrolltoupper="refesh">
 <view wx:if="{{hasRefesh}}" style="display: flex;flex-direction: row;align-items: center;align-self: center;justify-content: center;">
 <icon type="waiting" size="45"/><text>刷新中...</text></view>
 <view wx:else style="display:none" ><text></text></view>
 <view class="lll" wx:for="{{list}}" wx:for-item="item" bindtap="bindViewTap" 
 data-title="{{item.title}}" >
 <image style=" width: 50px;height: 50px;margin: 20rpx;" src="{{item.firstImg}}" ></image>
 <view class="eee" > 
 <view style="margin:5px;font-size:8px"> 标题:{{item.title}}</view>
 <view style="margin:5px;color:red;font-size:6px"> 来源:{{item.source}}</view>
 </view>
</view>
<view class="tips1">
 <view wx:if="{{hasMore}}" style="display: flex;flex-direction: row;align-items: center;align-self: center;justify-content: center;">
 <icon type="waiting" size="45"/><text>玩命的加载中...</text></view>
 <view wx:else><text>没有更多内容了</text></view>
 </view>
 </scroll-view>

2.2.1 detail.js逻辑代码文件

var network_util = require('../../utils/network_util.js');
var json_util = require('../../utils/json_util.js');
Page({
 data:{
 // text:"这是一个页面"
 list:[],
 dd:'',
 hidden:false,
 page: 1,
 size: 20,
 hasMore:true,
 hasRefesh:false
 },
 onLoad:function(options){
 var that = this;
 var url = 'http://v.juhe.cn/weixin/query?key=f16af393a63364b729fd81ed9fdd4b7d&pno=1&ps=10';
 network_util._get(url,
 function(res){
 that.setData({
 list:res.data.result.list,
 hidden: true,
 });
 },function(res){
 console.log(res);
 });
 },
 onReady:function(){
 // 页面渲染完成
 },
 onShow:function(){
 // 页面显示
 },
 onHide:function(){
 // 页面隐藏
 },
 onUnload:function(){
 // 页面关闭
 },
 //点击事件处理
 bindViewTap: function(e) {
 console.log(e.currentTarget.dataset.title);
 },
 //加载更多
 loadMore: function(e) {
 var that = this;
 that.setData({
 hasRefesh:true,});
 if (!this.data.hasMore) return
 var url = 'http://v.juhe.cn/weixin/query?key=f16af393a63364b729fd81ed9fdd4b7d&pno='+(++that.data.page)+'&ps=10';
 network_util._get(url,
 function(res){
 that.setData({
 list: that.data.list.concat(res.data.result.list),
 hidden: true,
 hasRefesh:false,
 });
 },function(res){
 console.log(res);
 })
},
//刷新处理
refesh: function(e) {
 var that = this;
 that.setData({
 hasRefesh:true,
 });
 var url = 'http://v.juhe.cn/weixin/query?key=f16af393a63364b729fd81ed9fdd4b7d&pno=1&ps=10';
 network_util._get(url,
 function(res){
 that.setData({
 list:res.data.result.list,
 hidden: true,
 page:1,
 hasRefesh:false,
 });
 },function(res){
 console.log(res);
 })
},
})

最后的效果:

微信小程序 列表的上拉加载和下拉刷新的实现

关于新闻的详情实现,后面在实现

代码地址:http://xiazai.3water.com/201703/yuanma/WeiXinProject-master_3water.rar

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
Feb 02 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
Nov 28 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
Jun 29 Javascript
jquery实现简单文字提示效果
Dec 02 Javascript
javascript实现的猜数小游戏完整实例代码
May 10 Javascript
js制作支付倒计时页面
Oct 21 Javascript
深入理解Angular4订阅(Subscribe)与取消
Nov 22 Javascript
关于Webpack dev server热加载失败的解决方法
Feb 22 Javascript
layer弹出层父子页面事件相互调用方法
Aug 17 Javascript
JS获取月的第几周和年的第几周实例代码
Dec 05 Javascript
jsonp跨域获取百度联想词的方法分析
May 13 Javascript
JavaScript Image对象实现原理实例解析
Aug 26 Javascript
Node.js之网络通讯模块实现浅析
Apr 01 #Javascript
vue-cli+webpack记事本项目创建
Apr 01 #Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
Apr 01 #Javascript
Vue.js实战之Vuex的入门教程
Apr 01 #Javascript
AngularJS页面传参的5种方式
Apr 01 #Javascript
vue2.0构建单页应用最佳实战
Apr 01 #Javascript
vue货币过滤器的实现方法
Apr 01 #Javascript
You might like
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
深入理解PHP原理之异常机制
2010/08/21 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
php实现获取文章内容第一张图片的方法
2014/11/04 PHP
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
canvas实现俄罗斯方块的方法示例
2018/12/13 HTML / CSS
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
教育专业个人求职信
2013/12/02 职场文书
体育比赛口号
2014/06/09 职场文书
创先争优活动心得体会
2014/09/04 职场文书
导师对论文的学术评语
2015/01/04 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
React四级菜单的实现
2022/04/08 Javascript