当前位置:网站首页>微信小程序触底加载与下拉刷新的实现
微信小程序触底加载与下拉刷新的实现
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()停止下拉刷新
最后
边栏推荐
猜你喜欢

WorkManager学习一

AtCoder Beginner Contest 258「ABCDEFG」

Those who are good at using soldiers, hide in the invisible, and explain the best promotional value works in depth in 90 minutes

Design of stepping motor controller based on single chip microcomputer (forward rotation and reverse rotation indicator gear)

最全是一次I2C总结

字节跳动面试官:一张图片占据的内存大小是如何计算

Cerebral cortex: directed brain connection recognition widespread functional network abnormalities in Parkinson's disease

《天天数学》连载58:二月二十七日

到底谁才是“良心”国产品牌?

Unity particle special effects series - the poison spray preform is ready, and the unitypackage package is directly used - on
随机推荐
Swift uses userdefaults and codable to save an array of class objects or structure instances
Pagoda panel MySQL cannot be started
RMS TO EAP通过MQTT简单实现
LiveData 面试题库、解答---LiveData 面试 7 连问~
MySQL数字类型学习笔记
Comparison of batch merge between Oracle and MySQL
What is the most suitable book for programmers to engage in open source?
如何判断线程池已经执行完所有任务了?
面试:Bitmap像素内存分配在堆内存还是在native中
Kotlin compose and native nesting
[论文阅读] KGAT: Knowledge Graph Attention Network for Recommendation
Applet image height adaptation and setting text line height
Glide Mastery
vscode的快捷键
> Could not create task ‘:app:MyTest.main()‘. > SourceSet with name ‘main‘ not found.问题修复
Zblogphp breadcrumb navigation code
Today in history: the first e-book came out; The inventor of magnetic stripe card was born; The pioneer of handheld computer was born
ArcGIS Pro creating features
Constrained layout flow
Those who are good at using soldiers, hide in the invisible, and explain the best promotional value works in depth in 90 minutes