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


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 相关文章推荐
Javascript 去除数组的重复元素
May 04 Javascript
JQuery魔力之$(&quot;tagName&quot;)与selector
Mar 05 Javascript
jquery数组之存放checkbox全选值示例代码
Dec 20 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
Aug 27 Javascript
js实现商城星星评分的效果
Dec 29 Javascript
AngularJS模仿Form表单提交的实现代码
Dec 08 Javascript
使用DeviceOne实现微信小程序功能
Dec 29 Javascript
jquery对象与DOM对象转化
Feb 08 Javascript
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 Javascript
Node调用Java的示例代码
Sep 20 Javascript
seajs模块压缩问题与解决方法实例分析
Oct 10 Javascript
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
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
PHP也可以?成Shell Script
2006/10/09 PHP
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
PHP实现浏览器中直接输出图片的方法示例
2018/03/14 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
使用JavaScript动态设置样式实现代码(2)
2013/01/25 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
jQuery判断数组是否包含了指定的元素
2015/03/10 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
Python实现简单HTML表格解析的方法
2015/06/15 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
python操作toml文件的示例代码
2020/11/27 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
环境监测与治理技术专业求职信
2014/07/06 职场文书
2014年乡镇领导个人整改措施
2014/09/19 职场文书
罚站检讨书
2015/01/29 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书