feat(onRefresherRefresh): 自定义下拉刷新,优化整体刷新效果

This commit is contained in:
Burt 2024-01-03 21:06:36 +08:00
parent 49a4c255e2
commit 2d27c4f7f8
2 changed files with 30 additions and 5 deletions

View File

@ -11,6 +11,7 @@
"style": { "style": {
"navigationBarTitleText": "我的", "navigationBarTitleText": "我的",
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"backgroundColor": "#23c09c",
"navigationStyle": "custom" "navigationStyle": "custom"
} }
} }

View File

@ -20,21 +20,26 @@
<scroll-view <scroll-view
enable-back-to-top enable-back-to-top
scroll-y scroll-y
class="bg-white flex-1 h-full" class="scroll-view-bg flex-1 h-full"
id="scroller" id="scroller"
refresher-enabled
@scrolltolower="onScrollToLower" @scrolltolower="onScrollToLower"
@refresherrefresh="onRefresherRefresh"
:refresher-triggered="isTriggered"
> >
<view class="top-section" :style="{ paddingTop: safeAreaInsets?.top + 'px' }"> <view class="top-section" :style="{ paddingTop: safeAreaInsets?.top + 'px' }">
<view class="pt-1">顶部区域</view> <view class="pt-1">顶部区域</view>
<view>可以是标题也可以是个人中心头像等</view> <view>可以是标题也可以是个人中心头像等</view>
<view>建议本区域高度不低于200rpx</view> <view>建议本区域高度不低于200rpx</view>
</view> </view>
<view class="p-2 leading-6"> <view class="p-2 leading-6 bg-white">
注意上面的导航栏渐变效果仅微信端支持且上面的导航栏无法抽为组件引入使用否则滚动效果没有了如果不只是微信小程序使用可以 注意上面的导航栏渐变效果仅微信端支持且上面的导航栏无法抽为组件引入使用否则滚动效果没有了如果不只是微信小程序使用可以
onPageScroll 实现全端效果一样另外如果是app端还可以配置 titleNView参考 onPageScroll 实现全端效果一样另外如果是app端还可以配置 titleNView参考
https://uniapp.dcloud.net.cn/tutorial/page.html#onpagescroll https://uniapp.dcloud.net.cn/tutorial/page.html#onpagescroll
</view> </view>
<view class="bg-white">
<fly-content :line="30" /> <fly-content :line="30" />
</view>
</scroll-view> </scroll-view>
</template> </template>
@ -44,13 +49,27 @@ import { onPullDownRefresh } from '@dcloudio/uni-app'
const { pages, isTabbar, onScrollToLower, safeAreaInsets } = useNavbarWeixin() const { pages, isTabbar, onScrollToLower, safeAreaInsets } = useNavbarWeixin()
// //
onPullDownRefresh(() => { onPullDownRefresh(() => {
console.log('refresh')
setTimeout(function fn() { setTimeout(function fn() {
console.log('refresh - onPullDownRefresh')
//
uni.stopPullDownRefresh() uni.stopPullDownRefresh()
}, 1000) }, 1000)
}) })
//
const isTriggered = ref(false)
//
const onRefresherRefresh = async () => {
//
isTriggered.value = true
setTimeout(function fn() {
console.log('refresh - onRefresherRefresh')
//
isTriggered.value = false
}, 1000)
}
</script> </script>
<style lang="scss"> <style lang="scss">
@ -61,6 +80,11 @@ page {
overflow: hidden; overflow: hidden;
} }
.scroll-view-bg {
// .top-section
background-color: #23c09c;
}
// 200rpx // 200rpx
.top-section { .top-section {
display: flex; display: flex;