scroll-view.wxml 文件
<scroll-view
scroll-y
enable-back-to-top
refresher-enabled
class="scroll-y"
lower-threshold="100"
bindscrolltolower="getMoreHandler"
bindrefresherrefresh="refreshHandler"
refresher-triggered="{{isTriggered}}">
<view wx:for="{{ numList }}" wx:key="*this">{{ item }}</view>
</scroll-view>
- scroll-y : 上下滑动
- enable-back-to-top:点击状态栏回到顶部
- refresher-enabled:开启下拉刷新
- lower-threshold:距底部/右边多远时,触发 scrolltolower 事件
- bindscrolltolower:触发上滑加载事件
- refresher-triggered:设置当前下拉刷新状态,true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发
scroll-view.wxss 文件
.scroll-y{
height: 100vh;
background-color: #efefef;
}
view{
height: 500rpx;
display: flex;
align-items: center;
justify-content: center;
}
view:nth-child(even){
background-color: sienna;
}
view:nth-child(odd){
background-color: slateblue;
}
scroll-view.js 文件
Page({
/**
* 页面的初始数据
*/
data: {
numList: [1, 2, 3],
isTriggered:false
},
getMoreHandler() {
wx.showLoading({
title: '加载中...',
})
setTimeout(() => {
const n = this.data.numList[this.data.numList.length - 1]
const newList = [n + 1, n + 2, n + 3]
this.setData({
numList: [...this.data.numList, ...newList]
})
wx.hideLoading()
}, 1000);
},
refreshHandler() {
wx.showToast({
title: '下拉刷新',
})
this.setData({
numList: [1, 2, 3],
isTriggered:false
})
}
})
注意:
- 需要为scroll-view设置高度,否则不能滑动
- 如果在手机上预览出现不能上滑并且底部有空白,需要合理调整item和lower-threshold的高度