diff --git a/web/src/pages/Home.module.less b/web/src/pages/Home.module.less index 99be647..5741a3e 100644 --- a/web/src/pages/Home.module.less +++ b/web/src/pages/Home.module.less @@ -472,6 +472,50 @@ } } + .rankingSwitch { + display: flex; + background: #f5f5f5; + border-radius: 20px; + padding: 4px; + margin-bottom: 16px; + width: fit-content; + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); + } + + .rankingSwitchButton { + padding: 6px 16px; + border: none; + background: transparent; + border-radius: 16px; + cursor: pointer; + font-size: 14px; + font-weight: 500; + color: #666; + transition: all 0.3s ease; + position: relative; + z-index: 1; + + &:hover { + color: #333; + } + + &.active { + color: #fff; + font-weight: 600; + } + } + + .rankingSwitchSlider { + position: absolute; + top: 4px; + left: 4px; + height: calc(100% - 8px); + background: linear-gradient(135deg, #1890ff 0%, #40a9ff 100%); + border-radius: 16px; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 2px 8px rgba(24, 144, 255, 0.3); + } + .rankingCard { border-radius: 16px; background: rgba(255, 255, 255, 0.9); diff --git a/web/src/pages/Home.tsx b/web/src/pages/Home.tsx index 7cb2bcd..496aae0 100644 --- a/web/src/pages/Home.tsx +++ b/web/src/pages/Home.tsx @@ -108,6 +108,7 @@ const Home: React.FC = () => { const [totalRanking, setTotalRanking] = useState([]) const [rankingLoading, setRankingLoading] = useState(false) const [rankingType, setRankingType] = useState<'daily' | 'total'>('daily') // 排行榜类型:每日或总榜 + const [sliderPosition, setSliderPosition] = useState<'left' | 'right'>('left') // 滑块位置 // 答题设置状态 const [autoNext, setAutoNext] = useState(() => { @@ -176,6 +177,12 @@ const Home: React.FC = () => { } } + // 切换排行榜类型 + const switchRankingType = (type: 'daily' | 'total') => { + setRankingType(type) + setSliderPosition(type === 'daily' ? 'left' : 'right') + } + // 加载用户信息 useEffect(() => { const token = localStorage.getItem('token') @@ -686,20 +693,26 @@ const Home: React.FC = () => { <TrophyOutlined /> 排行榜 -
- -
+
switchRankingType('total')} > 总排行榜 - +
+
{rankingLoading ? (