php微信小程序向下滑动,微信小程序功能实现:上滑加载下拉刷新

本文详细介绍了如何在微信小程序中实现文章列表的上滑加载和下拉刷新功能。通过使用scroll-view组件,设置scroll-y、bindscrolltoupper、bindscrolltolower等属性,配合监听页面事件来实现。在js文件中,利用分页查询并更新数据列表,同时展示了处理数据的方法和技巧。虽然下拉刷新的效果不尽如人意,但提供了基本的实现思路。
摘要由CSDN通过智能技术生成

本篇文章给大家带来的内容是关于微信小程序功能实现:上滑加载下拉刷新,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

之前谈到文章列表的数据加载,是一次性全部加载,这样是不友好的。这章介绍加载和刷新。

先介绍在IDE中,怎么模拟上滑这个操作。开始我是用鼠标点击文章列表,然后先上移动。结果一直没有结果,以为是代码写的有问题。其实并不是,上滑,下拉这个操作,只需要用鼠标的滚轮即可。

首先,我们先完成上滑和下拉这个功能。

list.wxml文件:

{{title}}

{{time}}

文章列表

加载中...

在原来的基础上,多用了一个scroll-view (官方文档:https://mp.weixin.qq.com/debug/wxadoc/dev/component/scroll-view.html)

我是加载文章列表的上面,

第一步:要设置允许它纵向滚动 scroll-y = true ,

第二步:要给一个固定高度,文档中也明确要求了这点。这里是动态获取手机配置的高度和宽度。

第三步:要设置bindscrolltoupper (下拉) 和 bindscrolltolower (上滑) 响应的方法。

第四步:要设置 scroll-top (用于定位) 和 bindscroll (滚动的时候执行,和前者一起用可达到定位效果)

第五步:加载页面icon设置,直接copy即可。

list.js 文件:

// pages/list/list.js

var app = getApp();

// 当前页数

var pageNum = 1;

// 加载数据

var loadMsgData = function(that){

that.setData({

hidden:false

});

var allMsg = that.data.msgList;

app.ajax.req('/itdragon/findAll',{

"page":pageNum , "pageSize" : 6

},function(res){

// 不能直接 allMsg.push(res); 相当于list.push(list);打乱了结构

for(var i = 0; i < res.length; i++){

allMsg.push(res[i]);

}

that.setData({

msgList:allMsg

});

pageNum ++;

that.setData({

hidden:true

});

});

}

Page({

data:{

msgList:[],

hidden:true,

scrollTop : 0,

scrollHeight:0

},

onLoad:function(options){

// 页面初始化 options为页面跳转所带来的参数

var that = this;

wx.getSystemInfo({

success: function(res) {

that.setData( {

windowHeight: res.windowHeight,

windowWidth: res.windowWidth

})

}

});

loadMsgData(that);

},

onReady:function(){

// 页面渲染完成

},

onShow:function(){

// 页面显示

},

// 下拉刷新数据

pullDownRefresh: function() {

var that = this;

pageNum = 1;

that.setData({

msgList : [],

scrollTop : 0

});

loadMsgData(that);

},

// 上拉加载数据 上拉动态效果不明显有待改善

pullUpLoad: function() {

var that = this;

loadMsgData(that);

},

// 定位数据

scroll:function(event){

var that = this;

that.setData({

scrollTop : event.detail.scrollTop

});

},

onHide:function(){

// 页面隐藏

},

onUnload:function(){

// 页面关闭

}

})

第一点:如果对 app.ajax.req 里面的方法看不懂,可以参考:微信小程序request请求 (有对应接口源码)

第二点:因为是分页查询,需要把上一次查询内容保存,所以用list.push 拼接。

第三点:每次查询后,页数都要加一,并且加载前要显示加载的icon,加载结束要隐藏。

第四点:页面加载初始化获取设置信息,官方文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/systeminfo.html#wxgetsysteminfoobject

第五点:下拉的逻辑,将页数设置为一,并清空msgList 内容,定位距顶部0px,最后调用加载数据的方法。

第六点:上滑的逻辑,直接调用。因为定位点在scorll方法中已经赋值。

第七点:如果调用我的接口,是不能用appid的,需要重新创建一个项目,选择无appid。

这样加载和刷新就完成了,虽然对刷新很不满意,网上找了很多例子都是这样,如果有好的效果,请赐教。

相关推荐:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值