当前位置:网站首页>微信小程序触底加载与下拉刷新的实现
微信小程序触底加载与下拉刷新的实现
2022-07-05 10:01:00 【InfoQ】
触底加载
- 封装一个loader函数
- 在监听页面加载的时候触发这个loader函数
- 在监听到触底的时候再次触发这个函数
onLoad: function (options) {
this.loadBooks(this.data.books.length)
},
onReachBottom: function () {
this.loadBooks(this.data.books.length)
},
loadBooks: function () {
},
onloadonReachBottomloader函数思考
skip(n)loader函数实现
- 调用wx云开发的api,
skip(n)从集合的第n项开始获取limit(n)获取至多n个元素。
- 通过get获取相应数据,这里为n项后6个数据。
- 通过
cancat()实现数组的合并需要注意的是这里的limit(n)直接使用是有20的长度限制,如果有刚需,需要获取20个以上的数据集合,那么我们可以在云函数中去解决。
loadBooks: function (n) {
wx.cloud.database().collection('books').skip(n).limit(6).get().then(res => {
console.log(res.data)
this.setData({
books: this.data.books.concat(res.data)
})
})
},
触底加载动画
<view class="loader" wx:if="{{isLoader}}">
<view class="dot"></view>
<view class="dot"></view>
<view class="dot"></view>
<view class="dot"></view>
<view class="dot"></view>
</view>
.dot {
width: 24rpx;
height: 24rpx;
background: #3ac;
border-radius: 100%;
display: inline-block;
animation: slide 1s infinite;
}
.dot:nth-child(n) {
animation-delay: 0.1s;
background: #6cd793;
}
@keyframes slide {
0% {
transform: scale(1);
}
50% {
opacity: .3;
transform: scale(2);
}
100% {
transform: scale(1);
}
}
触底加载的优点
下拉刷新
- 在相应页面的同级json文件中配置一下
enablePullDownRefresh使其为true,这里是开启对应页面的下拉刷新设置
{
"usingComponents": {},
"enablePullDownRefresh": true,
}
- 使用
onPullDownRefresh监听用户下拉动作
onPullDownRefresh: function () {},
- 调用wx的加载api
onPullDownRefresh: function () {
console.log(1)
//在标题栏中显示加载
wx.showNavigationBarLoading()
wx.showLoading({
title: '刷新中...',
})
wx.cloud.database().collection('books').skip(0).limit(6).get().then(res => {
this.setData({
books: res.data
})
wx.hideLoading();
//隐藏导航条加载动画
wx.hideNavigationBarLoading();
//停止下拉刷新
wx.stopPullDownRefresh();
})
},
wx.showNavigationBarLoading()在导航条进行显示加载动画
wx.hideNavigationBarLoading()隐藏导航条加载动画
wx.stopPullDownRefresh()停止下拉刷新
最后
边栏推荐
- 到底谁才是“良心”国产品牌?
- Dedecms website building tutorial
- [system design] index monitoring and alarm system
- ByteDance Interviewer: how to calculate the memory size occupied by a picture
- Zblogphp breadcrumb navigation code
- 【JS】数组降维
- Swift tableview style (I) system basic
- Comparison of batch merge between Oracle and MySQL
- QT VT100 parser
- 【小技巧】获取matlab中cdfplot函数的x轴,y轴的数值
猜你喜欢

《微信小程序-基础篇》小程序中的事件与冒泡

驱动制造业产业升级新思路的领域知识网络,什么来头?
![[tips] get the x-axis and y-axis values of cdfplot function in MATLAB](/img/08/2d039df6ea3ace8685512b2af8281d.png)
[tips] get the x-axis and y-axis values of cdfplot function in MATLAB

钉钉、企微、飞书学会赚钱了吗?
![[C language] the use of dynamic memory development](/img/b7/3337bf0df9232d3a44eaeb46b39c63.png)
[C language] the use of dynamic memory development "malloc"

Timed disappearance pop-up

WorkManager的学习二

苹果 5G 芯片研发失败?想要摆脱高通为时过早

Atcoder beginer contest 254 "e BFS" f st table maintenance differential array GCD "

How does redis implement multiple zones?
随机推荐
如何獲取GC(垃圾回收器)的STW(暫停)時間?
The king of pirated Dall · e? 50000 images per day, crowded hugging face server, and openai ordered to change its name
WorkManager学习一
苹果 5G 芯片研发失败?想要摆脱高通为时过早
Interview: how does the list duplicate according to the attributes of the object?
What is the origin of the domain knowledge network that drives the new idea of manufacturing industry upgrading?
Swift tableview style (I) system basic
MySQL character type learning notes
How did automated specification inspection software develop?
B站大量虚拟主播被集体强制退款:收入蒸发,还倒欠B站;乔布斯被追授美国总统自由勋章;Grafana 9 发布|极客头条...
Z-blog template installation and use tutorial
Excerpt from "sword comes" (VII)
请问大佬们 有遇到过flink cdc mongdb 执行flinksql 遇到这样的问题的么?
Pagoda panel MySQL cannot be started
Swift uses userdefaults and codable to save an array of class objects or structure instances
Usage differences between isempty and isblank
How does redis implement multiple zones?
Tianlong Babu TLBB series - single skill group injury
Cerebral cortex: directed brain connection recognition widespread functional network abnormalities in Parkinson's disease
Activity jump encapsulation