diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 1df1c16..e27b114 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -8,9 +8,6 @@ import InAppBrowserPrompt from './components/InAppBrowserPrompt.vue' import AdminLayout from './layouts/AdminLayout.vue' import AppLayout from './layouts/AppLayout.vue' -/** 移动端从详情返回时保留列表状态与滚动位置 */ -const mobileKeepAliveIncludes = ['MobileHomeView'] - const route = useRoute() const layout = computed(() => { if (route.path === '/m' || route.path.startsWith('/m/')) { @@ -26,11 +23,7 @@ const layout = computed(() => { - - - - - + diff --git a/frontend/src/features/listings/views/MobileHomeView.css b/frontend/src/features/listings/views/MobileHomeView.css index 3746834..e96878f 100644 --- a/frontend/src/features/listings/views/MobileHomeView.css +++ b/frontend/src/features/listings/views/MobileHomeView.css @@ -1,13 +1,27 @@ .mobile-shell { width: 100%; max-width: 430px; - min-height: 100vh; + height: 100dvh; + height: 100vh; margin: 0 auto; - padding-bottom: calc(72px + env(safe-area-inset-bottom)); + display: flex; + flex-direction: column; + overflow: hidden; background: #f6f8fb; color: #17233d; } +/* 列表独立滚动:与详情页 window 滚动隔离,返回时恢复 scrollTop */ +.mobile-scroll { + flex: 1; + min-height: 0; + overflow-x: hidden; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + overscroll-behavior-y: contain; + padding-bottom: calc(72px + env(safe-area-inset-bottom)); +} + .mobile-hero { padding: 12px 12px 10px; background: #fff; diff --git a/frontend/src/features/listings/views/MobileHomeView.vue b/frontend/src/features/listings/views/MobileHomeView.vue index 7fc04cd..5204947 100644 --- a/frontend/src/features/listings/views/MobileHomeView.vue +++ b/frontend/src/features/listings/views/MobileHomeView.vue @@ -1,15 +1,6 @@