feat:修改星榜

This commit is contained in:
zheng020 2026-06-11 00:52:19 +08:00
parent 3d6a4c5dbd
commit d6c4514329
3 changed files with 51 additions and 24 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

BIN
figma-design.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 KiB

View File

@ -169,7 +169,7 @@ const tabs = [
fetch: () => getHotRankingApi("displaying", null, 1, 11),
},
{
key: "trending",
key: "tongcheng",
label: "同城榜",
icon: "/static/square/galaxy/tongchengbang.png",
iconWidth: 64,
@ -310,26 +310,37 @@ onUnmounted(() => {
position: relative;
}
/* Tab 栏 */
/* Tab 栏 —— 与 Figma Rectangle 90 (83:268) 一一对应 */
.ranking-tabs {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 16rpx;
position: relative;
left: 50%;
/* left:50% + transform:translate(-50%)
transform 会创建独立 stacking context把子元素active tab锁在父级层级里
导致即使给 .active z-index:999 也浮不到 .items-grid 之上
改用 margin:0 auto 水平居中父级就不再创建 stacking context */
top: 16rpx;
transform: translate(-50%);
opacity: 0.8;
border-top-left-radius: 14px;
border-top-right-radius: 13px;
border-bottom-right-radius: 8px;
border-bottom-left-radius: 7px;
z-index: 1; /* 在内容网格之下 */
margin: 0 auto;
/* z-index transform/opacity inactive tab
低于 .items-gridgrid 2 这样 grid 就能遮住 top 栏被覆盖的部分 */
width: 480rpx;
height: 96rpx;
background: linear-gradient(183.58deg, #ff5a5d -36.55%, #c2ebff 121.2%);
backdrop-filter: blur(11.699999809265137px);
&::before {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(184deg, #ff5a5d -36.55%, #c2ebff 121.2%);
opacity: 0.8;
backdrop-filter: blur(5.85px);
border-top-left-radius: 14px;
border-top-right-radius: 13px;
border-bottom-right-radius: 8px;
border-bottom-left-radius: 7px;
}
}
.ranking-tab-item {
@ -346,14 +357,25 @@ onUnmounted(() => {
}
.ranking-tab-item.active {
background: linear-gradient(
185.9deg,
rgba(255, 90, 140, 0.98) 5.54%,
rgba(194, 235, 255, 0.98) 184.09%
);
backdrop-filter: blur(1.7999999523162842px);
height: 144rpx;
/* Figma active tab 尺寸 48x85px → 96x170rpx */
width: 96rpx;
height: 170rpx;
top: 40rpx;
/* z-index:3 + position:relative .items-gridz-index:2
前提是 .ranking-tabs 不能创建 stacking context已通过去掉 transform 保证 */
z-index: 1;
&::before {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(
190.37deg,
rgba(255, 90, 140, 0.98) 5.5378%,
rgba(194, 235, 255, 0.98) 184.09%
);
opacity: 0.5;
backdrop-filter: blur(0.9px);
}
}
.ranking-tab-item.active .ranking-tab-icon {
@ -443,16 +465,21 @@ onUnmounted(() => {
display: flex;
flex-direction: column; /* 改为纵向排列,每张卡片独占一行 */
position: relative;
z-index: 2; /* 在 tab 栏之上 */
/* 背景与父容器一致,看上去与 tab 栏融成一体 */
z-index: 2; /* top top z-index grid inactive tab
但比 .ranking-tab-item.active z-index:3 所以选中的红色渐变仍能浮出来 */
/* 背景与 Figma node 80-259 一致 */
background: linear-gradient(
161.28deg,
145.83deg,
rgba(255, 90, 93, 0.2) 16.63%,
rgba(76, 237, 255, 0.2) 48.19%,
rgba(255, 122, 124, 0.2) 83.71%
);
backdrop-filter: blur(9.300000190734863px);
border-radius: 12px;
backdrop-filter: blur(4.65px); /* Figma 是 4.65px,不是 9.3px */
border-top-left-radius: 13px; /* Figma: 左上 13px其余 12px */
border-top-right-radius: 12px;
border-bottom-right-radius: 12px;
border-bottom-left-radius: 12px;
opacity: 0.8; /* 与 Figma 一致 */
padding: 40rpx 20rpx 0;
overflow: hidden;
}