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


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 技巧小结
Apr 02 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
Oct 06 Javascript
JS实现标签页效果(配合css)
Apr 03 Javascript
让网页跳转到指定位置的jquery代码非书签
Sep 06 Javascript
Javascript 实现的数独解题算法网页实例
Oct 15 Javascript
React Native基础入门之初步使用Flexbox布局
Jul 02 Javascript
微信小程序使用gitee进行版本管理
Sep 20 Javascript
如何提升vue.js中大型数据的性能
Jun 21 Javascript
JS实现继承的几种常用方式示例
Jun 22 Javascript
ES6 Object属性新的写法实例小结
Jun 25 Javascript
JS数组Reduce方法功能与用法实例详解
Apr 29 Javascript
在vue中实现给每个页面顶部设置title
Jul 29 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
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
详解vue项目打包后通过百度的BAE发布到网上的流程
2018/03/05 Javascript
vue实现多个元素或多个组件之间动画效果
2018/09/25 Javascript
深入理解react-router 路由的实现原理
2018/09/26 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
深入理解Python异常处理的哲学
2019/02/01 Python
Python实现账号密码输错三次即锁定功能简单示例
2019/03/29 Python
Python笔记之工厂模式
2019/11/20 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
村干部培训班主持词
2014/03/28 职场文书
驾驶员培训方案
2014/05/01 职场文书
节电标语大全
2014/06/23 职场文书
2014年教师节国旗下讲话稿
2014/09/10 职场文书
志愿者事迹材料
2014/12/26 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
Python re.sub 反向引用的实现
2021/07/07 Python
pandas中关于apply+lambda的应用
2022/02/28 Python