| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- // MobileH5 容器样式
- // 仅在移动端(≤768px)生效
- @media (max-width: 768px) {
- .mobile-h5-container {
- display: flex;
- flex-direction: column;
- height: 100vh;
- width: 100vw;
- background: var(--h5-bg-primary);
- overflow: hidden;
- position: relative;
- }
- // 内容区域
- .mobile-content {
- flex: 1;
- overflow-y: auto;
- -webkit-overflow-scrolling: touch; // iOS 平滑滚动
- padding-bottom: calc(60px + env(safe-area-inset-bottom)); // 留出 Tab 空间
- position: relative;
- }
- // ===== 智能问答包装器 =====
- .chat-wrapper {
- position: relative;
- height: 100%;
-
- // 隐藏"开放平台"返回按钮(H5 不显示)
- .back-btn {
- display: none !important;
- }
-
- // 汉堡菜单按钮
- .hamburger-toggle {
- position: fixed;
- top: var(--h5-spacing-lg);
- left: var(--h5-spacing-lg);
- z-index: 1001;
- width: 40px;
- height: 40px;
- border-radius: var(--h5-radius-full);
- background: var(--h5-bg-secondary);
- border: 1px solid var(--h5-border);
- font-size: 20px;
- color: var(--h5-text-primary);
- cursor: pointer;
- display: flex;
- align-items: center;
- justify-content: center;
- box-shadow: var(--h5-shadow-md);
- transition: var(--h5-transition);
-
- &:active {
- background: var(--h5-bg-tertiary);
- }
- }
-
- // Sidebar 包装器
- .sidebar-wrapper {
- position: fixed;
- top: 0;
- left: 0;
- bottom: 0;
- width: 280px;
- z-index: 1002;
- transform: translateX(-100%);
- transition: transform 0.3s ease;
-
- &.open {
- transform: translateX(0);
- }
- }
-
- // 遮罩层
- .sidebar-overlay {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background: rgba(0, 0, 0, 0.5);
- z-index: 1001;
- animation: fadeIn 0.3s ease;
- }
- }
-
- @keyframes fadeIn {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
- }
- // 底部 Tab 导航
- .bottom-tab-bar {
- flex-shrink: 0;
- display: flex;
- height: 60px;
- background: var(--h5-bg-secondary);
- border-top: 1px solid var(--h5-border);
- padding: var(--h5-spacing-sm) var(--h5-spacing-md);
- padding-bottom: calc(var(--h5-spacing-sm) + env(safe-area-inset-bottom));
- box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.05);
- }
- // Tab 项
- .tab-item {
- flex: 1;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- gap: 4px;
- background: transparent;
- border: none;
- cursor: pointer;
- transition: var(--h5-transition);
- .tab-icon {
- font-size: 24px;
- color: var(--h5-text-muted);
- transition: color 0.2s;
- line-height: 1;
- }
- .tab-label {
- font-size: var(--h5-font-xs);
- color: var(--h5-text-muted);
- font-weight: 400;
- transition: color 0.2s;
- }
- // 激活状态
- &.active {
- .tab-icon {
- color: var(--h5-accent);
- }
- .tab-label {
- color: var(--h5-accent);
- font-weight: 500;
- }
- }
- // 点击反馈
- &:active {
- opacity: 0.7;
- }
- }
- }
|