|
|
@ -45,6 +45,9 @@ Page({ |
|
|
// 导航栏显示控制
|
|
|
// 导航栏显示控制
|
|
|
showNavBar: true, // 控制导航栏显示/隐藏
|
|
|
showNavBar: true, // 控制导航栏显示/隐藏
|
|
|
lastScrollTop: 0, // 上一次滚动位置
|
|
|
lastScrollTop: 0, // 上一次滚动位置
|
|
|
|
|
|
|
|
|
|
|
|
// 回到顶部按钮
|
|
|
|
|
|
showBackToTop: false, // 控制回到顶部按钮显示/隐藏
|
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 跳转到聊天页面
|
|
|
// 跳转到聊天页面
|
|
|
@ -630,26 +633,16 @@ Page({ |
|
|
// 获取滚动信息
|
|
|
// 获取滚动信息
|
|
|
const { scrollTop, scrollHeight, clientHeight } = e.detail; |
|
|
const { scrollTop, scrollHeight, clientHeight } = e.detail; |
|
|
|
|
|
|
|
|
// 导航栏显示/隐藏逻辑
|
|
|
// 显示/隐藏回到顶部按钮:当滚动距离超过500rpx时显示
|
|
|
const { lastScrollTop } = this.data; |
|
|
if (scrollTop > 500) { |
|
|
|
|
|
|
|
|
// 下滑检测:如果当前滚动位置大于上一次滚动位置,且不在顶部(scrollTop > 10),则隐藏导航栏
|
|
|
|
|
|
if (scrollTop > lastScrollTop && scrollTop > 10) { |
|
|
|
|
|
this.setData({ |
|
|
this.setData({ |
|
|
showNavBar: false |
|
|
showBackToTop: true |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} else { |
|
|
// 上滑检测:如果当前滚动位置小于上一次滚动位置,或者回到顶部,则显示导航栏
|
|
|
|
|
|
else if (scrollTop < lastScrollTop || scrollTop <= 10) { |
|
|
|
|
|
this.setData({ |
|
|
this.setData({ |
|
|
showNavBar: true |
|
|
showBackToTop: false |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 更新上一次滚动位置
|
|
|
|
|
|
this.setData({ |
|
|
|
|
|
lastScrollTop: scrollTop |
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 上拉加载更多
|
|
|
// 上拉加载更多
|
|
|
@ -659,6 +652,14 @@ Page({ |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 回到顶部功能
|
|
|
|
|
|
backToTop: function() { |
|
|
|
|
|
wx.pageScrollTo({ |
|
|
|
|
|
scrollTop: 0, |
|
|
|
|
|
duration: 300 // 动画持续时间,单位ms
|
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
// 切换图片
|
|
|
// 切换图片
|
|
|
swiperChange(e) { |
|
|
swiperChange(e) { |
|
|
const current = e.detail.current |
|
|
const current = e.detail.current |
|
|
|