diff --git a/docker-compose.yml b/docker-compose.yml index 006ff1d..c4bb493 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: build: context: . dockerfile: Dockerfile - image: tradus-web:1.10 + image: tradus-web:1.11 container_name: tradus-web ports: - '6000:80' diff --git a/src/App.vue b/src/App.vue index 87972a4..4acdac9 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1598,4 +1598,40 @@ body { .desktop-user-info .points-value { white-space: nowrap; } + +/* 全局滚动条样式 */ +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-track { + background: transparent; + border-radius: 4px; +} + +::-webkit-scrollbar-thumb { + background-color: var(--color-border); + border-radius: 4px; + transition: all 0.2s ease; +} + +::-webkit-scrollbar-thumb:hover { + background-color: var(--color-accent); +} + +/* Firefox */ +* { + scrollbar-width: thin; + scrollbar-color: var(--color-border) transparent; +} + +*:hover { + scrollbar-color: var(--color-accent) transparent; +} + +/* 确保滚动行为平滑 */ +html { + scroll-behavior: smooth; +} diff --git a/src/views/AStockAnalysisView.vue b/src/views/AStockAnalysisView.vue index c60affa..3526b81 100644 --- a/src/views/AStockAnalysisView.vue +++ b/src/views/AStockAnalysisView.vue @@ -269,30 +269,18 @@ const clearInput = () => { overflow: hidden; } -.header-section { - text-align: center; - transition: all 0.5s ease; -} - -.header-section.minimized { - padding: 0.5rem 0; -} - .initial-content { display: flex; flex-direction: column; - justify-content: center; align-items: center; - min-height: 100%; - padding: 2rem 1rem; + padding-top: 15vh; gap: 2rem; transition: all 0.5s ease; } -.initial-content.minimized { - min-height: auto; - padding: 0; - gap: 1rem; +.header-section { + text-align: center; + transition: all 0.5s ease; } .title { @@ -303,21 +291,12 @@ const clearInput = () => { transition: all 0.5s ease; } -.header-section.minimized .title { - font-size: 1.5rem; - margin-bottom: 0.25rem; -} - .description { font-size: 1rem; color: var(--color-text-secondary); transition: all 0.5s ease; } -.header-section.minimized .description { - font-size: 0.9rem; -} - .search-section { width: 100%; max-width: 600px; @@ -484,6 +463,7 @@ const clearInput = () => { white-space: pre-wrap; padding-bottom: 2rem; flex: 1; + padding: 1rem 1.5rem 4.5rem 1.5rem; } :deep(.error-message) { @@ -524,28 +504,15 @@ const clearInput = () => { } @media (max-width: 768px) { - .stock-analysis-view { - padding: 0.5rem; - } - .initial-content { - padding: 1rem 0.5rem; + padding-top: 12vh; gap: 1.5rem; } - .initial-content.minimized { - padding: 0; - gap: 0.75rem; - } - .title { font-size: 1.75rem; } - .header-section.minimized .title { - font-size: 1.25rem; - } - .search-container { padding: 1rem; } @@ -561,13 +528,13 @@ const clearInput = () => { .analysis-content { font-size: 1rem; - padding-bottom: 1.5rem; + padding: 1rem 1rem 4.5rem 1rem; } } @media (max-width: 480px) { .initial-content { - padding: 0.75rem 0.5rem; + padding-top: 10vh; gap: 1rem; } @@ -593,7 +560,7 @@ const clearInput = () => { } .analysis-content { - padding-bottom: 1rem; + padding: 0.75rem 0.75rem 4.5rem 0.75rem; } } diff --git a/src/views/CryptoAnalysisView.vue b/src/views/CryptoAnalysisView.vue index 7022ec1..f2eec1c 100644 --- a/src/views/CryptoAnalysisView.vue +++ b/src/views/CryptoAnalysisView.vue @@ -304,30 +304,18 @@ const clearInput = () => { overflow: hidden; } -.header-section { - text-align: center; - transition: all 0.5s ease; -} - -.header-section.minimized { - padding: 0.5rem 0; -} - .initial-content { display: flex; flex-direction: column; - justify-content: center; align-items: center; - min-height: 100%; - padding: 2rem 1rem; + padding-top: 15vh; gap: 2rem; transition: all 0.5s ease; } -.initial-content.minimized { - min-height: auto; - padding: 0; - gap: 1rem; +.header-section { + text-align: center; + transition: all 0.5s ease; } .title { @@ -338,19 +326,16 @@ const clearInput = () => { transition: all 0.5s ease; } -.header-section.minimized .title { - font-size: 1.5rem; - margin-bottom: 0.25rem; -} - .description { font-size: 1rem; color: var(--color-text-secondary); transition: all 0.5s ease; } -.header-section.minimized .description { - font-size: 0.9rem; +.search-section { + width: 100%; + max-width: 600px; + transition: all 0.5s ease; } .main-section { @@ -371,11 +356,6 @@ const clearInput = () => { padding-top: 1rem; } -.search-section { - width: 100%; - transition: all 0.5s ease; -} - .search-container { position: relative; padding: 1.5rem; @@ -653,6 +633,7 @@ const clearInput = () => { line-height: 1.8; font-size: 1.1rem; white-space: pre-wrap; + padding: 1rem 1.5rem 4.5rem 1.5rem; } .analysis-content :deep(h1), @@ -785,31 +766,14 @@ const clearInput = () => { } .initial-content { - padding: 1rem 0.5rem; + padding-top: 12vh; gap: 1.5rem; } - .initial-content.minimized { - padding: 0; - gap: 0.75rem; - } - - .header-section { - padding: 0.75rem 0; - } - - .header-section.minimized { - padding: 0.25rem 0; - } - .title { font-size: 1.75rem; } - .header-section.minimized .title { - font-size: 1.25rem; - } - .search-container { padding: 1rem; margin: 0 -0.5rem; @@ -832,7 +796,7 @@ const clearInput = () => { .analysis-content { font-size: 1rem; - padding-right: 0.25rem; + padding: 1rem 1rem 4.5rem 1rem; } .crypto-card { @@ -879,30 +843,18 @@ const clearInput = () => { @media (max-width: 480px) { .initial-content { - padding: 0.75rem 0.5rem; + padding-top: 10vh; gap: 1rem; } - .initial-content.minimized { - gap: 0.5rem; - } - .title { font-size: 1.5rem; } - .header-section.minimized .title { - font-size: 1.1rem; - } - .description { font-size: 0.9rem; } - .header-section.minimized .description { - font-size: 0.8rem; - } - .crypto-option { padding: 0.5rem 0.75rem; } @@ -924,6 +876,10 @@ const clearInput = () => { font-size: 0.95rem; padding: 0.6rem; } + + .analysis-content { + padding: 0.75rem 0.75rem 4.5rem 0.75rem; + } } .search-container.is-analyzing {