feat(leaderboard): 下拉刷新动画图标
下拉刷新时顶部显示主题色旋转 spinner + "刷新中…"指示器, 仅下拉刷新显示(pullRefreshing),后台静默刷新保持无感。 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,7 @@ Page({
|
||||
myEntry: null,
|
||||
loading: false,
|
||||
refreshing: false,
|
||||
pullRefreshing: false,
|
||||
empty: false,
|
||||
icons: iconsMod.build()
|
||||
},
|
||||
@@ -48,7 +49,11 @@ Page({
|
||||
},
|
||||
|
||||
onPullDownRefresh() {
|
||||
this.fetchRank(() => wx.stopPullDownRefresh(), true)
|
||||
this.setData({ pullRefreshing: true })
|
||||
this.fetchRank(() => {
|
||||
this.setData({ pullRefreshing: false })
|
||||
wx.stopPullDownRefresh()
|
||||
}, true)
|
||||
},
|
||||
|
||||
switchPeriod(e) {
|
||||
|
||||
@@ -12,6 +12,12 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 刷新中指示器(下拉刷新) -->
|
||||
<view class="refresh-indicator" wx:if="{{pullRefreshing}}">
|
||||
<view class="refresh-spinner"></view>
|
||||
<text class="refresh-text">刷新中…</text>
|
||||
</view>
|
||||
|
||||
<!-- Loading: 旋转加载图标 + 骨架屏 -->
|
||||
<view class="leaderboard-skeleton" wx:if="{{loading}}">
|
||||
<view class="lb-loading">
|
||||
|
||||
@@ -467,6 +467,39 @@
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
/* 刷新中指示器:下拉刷新时顶部显示(后台静默刷新不显示,保持无感) */
|
||||
.refresh-indicator {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 10rpx;
|
||||
padding: 14rpx 0;
|
||||
animation: refreshFadeIn 0.2s ease;
|
||||
}
|
||||
|
||||
.refresh-spinner {
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
border: 3rpx solid rgba(var(--primary-rgb), 0.2);
|
||||
border-top-color: var(--primary);
|
||||
border-radius: 50%;
|
||||
animation: refreshSpin 0.8s linear infinite;
|
||||
}
|
||||
|
||||
.refresh-text {
|
||||
font-size: 24rpx;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
@keyframes refreshSpin {
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
@keyframes refreshFadeIn {
|
||||
from { opacity: 0; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
|
||||
/* Loading: 旋转加载图标 + 骨架屏容器 */
|
||||
.leaderboard-skeleton {
|
||||
padding: 40rpx 32rpx 0;
|
||||
|
||||
Reference in New Issue
Block a user