bugfix
This commit is contained in:
@@ -13,6 +13,8 @@ Component({
|
||||
data: {
|
||||
selected: 0,
|
||||
unread: 0,
|
||||
// 弹层打开时页面调用 setHidden(true) 淡出,避免悬浮标签栏压在弹层之上
|
||||
hidden: false,
|
||||
list: [
|
||||
{ pagePath: '/pages/wardrobe/wardrobe', text: '衣橱', icon: 'icon-hanger' },
|
||||
{ pagePath: '/pages/outfit/outfit', text: '穿搭', icon: 'icon-shirt' },
|
||||
@@ -75,6 +77,14 @@ Component({
|
||||
this.applyData({ selected: index })
|
||||
},
|
||||
|
||||
// 弹层打开/关闭时淡出或恢复悬浮标签栏(供页面调用,内部保证首帧安全)
|
||||
setHidden(hidden: boolean) {
|
||||
const next = !!hidden
|
||||
// 值未变化时不触发渲染:页面每次 onShow 都会校准一次,避免无谓的 setData
|
||||
if (next === !!this.data.hidden) return
|
||||
this.applyData({ hidden: next })
|
||||
},
|
||||
|
||||
// 直接更新红点(供页面在已知数量时调用,不再触发二次请求)
|
||||
setUnread(n: number) {
|
||||
const unread = Number(n) || 0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- v2 悬浮玻璃胶囊标签栏 -->
|
||||
<view class="tabbar">
|
||||
<!-- v2 悬浮玻璃胶囊标签栏(弹层打开时由页面调用 setHidden 淡出) -->
|
||||
<view class="tabbar {{hidden ? 'is-hidden' : ''}}">
|
||||
<view
|
||||
wx:for="{{list}}"
|
||||
wx:key="pagePath"
|
||||
|
||||
@@ -14,6 +14,14 @@
|
||||
box-shadow: 0 0 0 1rpx rgba(0, 0, 0, .05), 0 20rpx 60rpx -20rpx rgba(0, 0, 0, .16);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
transition: opacity .3s cubic-bezier(.32, .72, 0, 1), transform .3s cubic-bezier(.32, .72, 0, 1);
|
||||
}
|
||||
|
||||
/* 弹层遮罩期间淡出:tabBar 由框架渲染在页面容器之上,页面内 z-index 盖不住它 */
|
||||
.tabbar.is-hidden {
|
||||
opacity: 0;
|
||||
transform: translateY(calc(100% + 48rpx));
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.tab-item {
|
||||
|
||||
Reference in New Issue
Block a user