feat: tabBar 选中态图标填充高亮,半透明毛玻璃背景

This commit is contained in:
2026-08-06 17:15:30 +08:00
parent d1ab76b08a
commit 9716148f15
14 changed files with 24 additions and 10 deletions
+6 -2
View File
@@ -4,7 +4,9 @@
left: 0;
right: 0;
height: 120px;
background: #ffffff;
background: rgba(255, 255, 255, 0.75);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
display: flex;
justify-content: space-around;
align-items: center;
@@ -16,7 +18,9 @@
/* 自定义组件样式隔离:两套主题配色在组件内自包含,不依赖全局 app.wxss */
.custom-tab-bar.theme-dark {
background: #191919;
background: rgba(25, 25, 25, 0.75);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.5);
}
+6 -6
View File
@@ -7,11 +7,11 @@ import { applyPageBackground } from '../utils/themeBackground'
import './index.scss'
const TABS = [
{ pagePath: '/pages/index/index', text: '首页', icon: '/icon/首页.svg' },
{ pagePath: '/pages/shop/index', text: '商品', icon: '/icon/商品.svg' },
{ pagePath: '/pages/designList/index', text: '设计清单', icon: '/icon/调色盘.svg' },
{ pagePath: '/pages/orders/index', text: '订单', icon: '/icon/包裹.svg' },
{ pagePath: '/pages/profile/index', text: '我的', icon: '/icon/个人.svg' }
{ pagePath: '/pages/index/index', text: '首页', icon: '/icon/首页.svg', iconActive: '/icon/首页-fill.svg' },
{ pagePath: '/pages/shop/index', text: '商品', icon: '/icon/商品.svg', iconActive: '/icon/商品-fill.svg' },
{ pagePath: '/pages/designList/index', text: '设计清单', icon: '/icon/调色盘.svg', iconActive: '/icon/调色盘-fill.svg' },
{ pagePath: '/pages/orders/index', text: '订单', icon: '/icon/包裹.svg', iconActive: '/icon/包裹-fill.svg' },
{ pagePath: '/pages/profile/index', text: '我的', icon: '/icon/个人.svg', iconActive: '/icon/个人-fill.svg' }
]
export default function CustomTabBar() {
@@ -48,7 +48,7 @@ export default function CustomTabBar() {
className={`tab-item ${isActive ? 'active' : ''}`}
onTap={() => switchTab(tab.pagePath)}
>
<Image className={`tab-icon-img ${isActive ? 'active' : ''}`} src={tab.icon} mode='aspectFit' />
<Image className={`tab-icon-img ${isActive ? 'active' : ''}`} src={isActive ? tab.iconActive : tab.icon} mode='aspectFit' />
<Text className='tab-label'>{tab.text}</Text>
</View>
)