vant实现下拉刷新和上拉加载_微信小程序 - 实现下拉刷新、上拉加载
在小程序开发中使用下拉刷新和上拉加载非常多,比如常用的展示型首页,而实现这个功能有两种形式,第一种是使用 scroll-view 组件,第二种是不使用 scroll-view 组件而让整个页面刷新,那就分别都在此简单分享下。
方法一
在 scroll-view 里设定 bindscrolltoupper 和 bindscrolltolower 监听页面滑动到顶部和底部,调用两个方法然后分别根据自己业务逻辑处理即可。
详情见 scroll-view 组件
直接上代码
注意使用竖向滚动时,需要给 <scroll-view/>
一个固定高度才能监听滚动事件,通过 WXSS 设置 height 。
index.wxml
<!--index.wxml-->
<view><scroll-view scroll-top="{{scrollTop}}" scroll-y="true" style="height:{{scrollHeight}}px;" class="list" bindscrolltolower="bindDownLoad" bindscrolltoupper="topLoad" bindscroll="scroll"><view class="item" wx:for="{{list}}"><image class="img" src="{{item.pic_url}}"></image><view class="text"><text class="title">{{item.name}}</text><text class="description">{{item.short_description}}</text></view></view></scroll-view><view class="body-view"><loading hidden="{{hidden}}" bindchange="loadingChange">加载中...</loading></view>
</view>
index.js
var url = "https://xxx";
var page = 1;
var page_size = 5;// 请求数据
var loadMore = function (that) {that.setData({hidden: true});wx.request({url: url,data: {page: page,page_size: page_size,},header: {'content-type': 'application/json'},success: function (res) {var list = that.data.list ;for(var i = 0; i < res.data.data.length; i++){list.push(res.data.data[i]);}that.setData({list: list});page++;that.setData({hidden: false});}});
}Page({data: {hidden: true,list: [],scrollTop: 0,scrollHeight: 0},onLoad: function () {//注意 scroll-view 必须要设置高度才能监听滚动事件,需要在页面的onLoad事件中给scroll-view的高度赋值var that = this;wx.getSystemInfo({success: function (res) {that.setData({scrollHeight: res.windowHeight});}});loadMore(that);},//下拉加载bindDownLoad: function () {var that = this;loadMore(that);},scroll: function (event) {//该方法绑定了页面滚动时的事件,这里记录了当前的 position.y 的值,为了请求数据之后把页面定位到这里来。this.setData({scrollTop: event.detail.scrollTop});},//上拉刷新topLoad: function (event) {var that = this;//数据刷新page = 0;this.setData({page: 1,list: [],scrollTop: 0});loadMore(that);}
})
方法二
整个页面的刷新,使用 onPullDownRefresh 和 onReachBottom 。但是在小程序里,用户顶部下拉是默认禁止的,我们需要把他设置为启用,在 app.json 中的设置对所有页面有效,在单独页面设置则对当前页面有效。
详情见 Page 页面
有人说设置完之后可以下拉,但是看不到图标,需要再设置下拉 loading 样式。
{"window":{"backgroundTextStyle": "dark","enablePullDownRefresh": true}
}
直接上代码
下拉刷新
// 下拉刷新 onPullDownRefresh: function () {// 显示顶部刷新图标 wx.showNavigationBarLoading();var that = this;wx.request({url: 'https://xxx',method: "POST",data:{page : page,page_size : page_size,},header: {'content-type': 'application/json'},success: function (res) {that.setData({moment: res.data.data});// 设置数组元素 that.setData({moment: that.data.moment});// 隐藏导航栏加载框 wx.hideNavigationBarLoading();// 停止下拉动作 wx.stopPullDownRefresh();}})},
上拉加载更多
//上拉加载onReachBottom: function () {var that = this;// 显示加载图标 wx.showLoading({title: '加载中...',})page++;;wx.request({url: 'https://xxx/',method: "POST",data:{page : page,page_size : page_size,},header: {'content-type': 'application/json'},success: function (res) {// 回调函数 var moment_list = that.data.moment;for (var i = 0; i < res.data.data.length; i++) {moment_list.push(res.data.data[i]);}// 设置数据 that.setData({moment: that.data.moment})// 隐藏加载框 wx.hideLoading();}})},
参考以上例子就可以下拉刷新、上拉加载, 示例仅提供一个思路,具体的实现需要开发者根据自己项目来定。
码字不易,转载请注明出处。
vant实现下拉刷新和上拉加载_微信小程序 - 实现下拉刷新、上拉加载相关推荐
- 微信小程序下拉刷新真机没效果_微信小程序 下拉刷新 上拉加载(示例代码)
1.下拉刷新 小程序页面集成了下拉功能,并提供了接口,我们只需要一些配置就可以拿到事件的回调. 1. 需要在 .json 文件中配置. 如果配置在app.json文件中,那么整个程序都可以下拉刷新.如 ...
- 微信小程序 - 为何setData到页面上有的加分号
1 Page({ 2 3 /** 4 * 页面的初始数据 5 */ 6 data: { 7 8 }, 9 10 /** 11 * 生命周期函数--监听页面加载 12 */ 13 onLoad: fun ...
- android商品数量加减,微信小程序实现一个简单的商品数量加减案例
简介 这是一个用微信小程序原生代码实现的数量加减demo,主要是用于商品购物车或者商品详情修改数量使用,很简单哦~~~. 核心js方法说明addCount(增加数量) delCount (减少数量) ...
- 微信小程序实现下拉刷新
微信小程序实现下拉刷新 配置json文件 在js文件中写下拉刷新方法 注意 配置json文件 如果需要全局使用下拉刷新就在app.json中设置 如果为单页面使用则在页面json设置即可 " ...
- vue uniapp 微信小程序 搜索下拉框 模糊搜索
vue uniapp 微信小程序 搜索下拉框 模糊搜索 话不多说 直接贴代码 template <template><view class="index"> ...
- php 类似微信下拉菜单,微信小程序模拟下拉菜单开发实例
本文主要和大家分享微信小程序模拟下拉菜单开发实例,希望能帮助到大家. 一.知识点 1.实现动态显示和隐藏某个控件 列表1data:{ open:false }, showitem:function() ...
- 微信小程序 select 下拉框组件
一.源码地址 GitHub - imxiaoer/WeChatMiniSelect: 微信小程序 select 下拉框组件 二.效果图 录屏图片质量较差,所以大家会看到残影(捂脸) 三.组件源码 1. ...
- 微信小程序scroll-view实现自定义刷新
微信小程序scroll-view实现自定义刷新@TOC 先说原生页面级的刷新 通常我们可以利用微信小程序的onPullDownRefresh函数(下拉刷新监听函数)和onReachBottom函数(上 ...
- 微信小程序分享海报/卡片 生成时一直加载可能存在的问题
微信小程序分享海报/卡片 生成时一直加载可能存在的问题 很多时候,开发者在调试小程序的分享图时,总是会遇到不能正常生成的问题,这里面还是有许多的坑.这一次就把我个人所知道的问题分享一下. 第一种情况: ...
最新文章
- Simple Dynamic Strings(SDS)源码解析和使用说明二
- 关于一些Linux SVN的安装使用
- 表空间迁移(transport tablespace)测试案例
- 哈工大计算机专研和学研的区别,哈工大教授发表SCI和核心期刊共26篇,发明专利6项,在交叉学科领域大放异彩!...
- php cdi_本机CDI限定词:@Any和@Default
- 一步步编写操作系统 24 编写内核加载器
- 在Zabbix中添加交换机端口监控
- PyTorch学习笔记(六):PyTorch进阶训练技巧
- day17 10.jdbc的crud操作
- 【手写数字识别】基于matlab GUI知识库手写数字识别(写字板+图片)【含Matlab源码 1227期】
- 一家麻辣烫店如何实现月净利五万
- 计算机英语面试翻译,英语面试问题及回答带翻译
- TrueCrypt加密:TrueCrypt Format创建加密卷(1)
- 苹果系统安全吗?7种方法保护自己的隐私
- 使用微信小程序editor富文本编辑器(爬坑要点)
- 使用 Nginx 如何部署 web 项目
- c# picturebox控件的使用方法介绍
- 门户网站建设有哪些类型?
- sd卡中的文件夹删除了怎么恢复,SD卡删除的文件如何恢复
- [AI教程]TensorFlow入门:手势数字识别