|
@@ -0,0 +1,1102 @@
|
|
|
|
|
+<!DOCTYPE html>
|
|
|
|
|
+<html lang="zh-CN">
|
|
|
|
|
+<head>
|
|
|
|
|
+ <meta charset="UTF-8">
|
|
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
+ <title>智途 - 智能旅行规划工具</title>
|
|
|
|
|
+ <!-- 使用iconfont CDN -->
|
|
|
|
|
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.2/css/all.min.css">
|
|
|
|
|
+ <style>
|
|
|
|
|
+ :root {
|
|
|
|
|
+ --primary-color: #4a6bdf;
|
|
|
|
|
+ --secondary-color: #6c5ce7;
|
|
|
|
|
+ --accent-color: #00cec9;
|
|
|
|
|
+ --text-color: #2d3436;
|
|
|
|
|
+ --light-text: #636e72;
|
|
|
|
|
+ --bg-color: #ffffff;
|
|
|
|
|
+ --card-bg: #f5f6fa;
|
|
|
|
|
+ --shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
|
|
|
+ --transition: all 0.3s ease;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ [data-theme="dark"] {
|
|
|
|
|
+ --primary-color: #6c5ce7;
|
|
|
|
|
+ --secondary-color: #a29bfe;
|
|
|
|
|
+ --accent-color: #00cec9;
|
|
|
|
|
+ --text-color: #f5f6fa;
|
|
|
|
|
+ --light-text: #b2bec3;
|
|
|
|
|
+ --bg-color: #2d3436;
|
|
|
|
|
+ --card-bg: #1e272e;
|
|
|
|
|
+ --shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ * {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ padding: 0;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ font-family: 'PingFang SC', 'Helvetica Neue', Arial, sans-serif;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ body {
|
|
|
|
|
+ background-color: var(--bg-color);
|
|
|
|
|
+ color: var(--text-color);
|
|
|
|
|
+ transition: var(--transition);
|
|
|
|
|
+ padding-bottom: 80px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /* 顶部导航栏 */
|
|
|
|
|
+ .header {
|
|
|
|
|
+ position: fixed;
|
|
|
|
|
+ top: 0;
|
|
|
|
|
+ left: 0;
|
|
|
|
|
+ right: 0;
|
|
|
|
|
+ height: 60px;
|
|
|
|
|
+ background-color: var(--bg-color);
|
|
|
|
|
+ box-shadow: var(--shadow);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 0 15px;
|
|
|
|
|
+ z-index: 1000;
|
|
|
|
|
+ transition: var(--transition);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .brand {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ margin-right: 10px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .logo {
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ color: var(--primary-color);
|
|
|
|
|
+ margin-right: 8px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .globe {
|
|
|
|
|
+ width: 24px;
|
|
|
|
|
+ height: 24px;
|
|
|
|
|
+ background-color: var(--accent-color);
|
|
|
|
|
+ border-radius: 50%;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ color: white;
|
|
|
|
|
+ animation: rotate 10s linear infinite;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @keyframes rotate {
|
|
|
|
|
+ from { transform: rotate(0deg); }
|
|
|
|
|
+ to { transform: rotate(360deg); }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .search-container {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .search-input {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ height: 36px;
|
|
|
|
|
+ border-radius: 18px;
|
|
|
|
|
+ border: 1px solid #dfe6e9;
|
|
|
|
|
+ padding: 0 15px 0 40px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ background-color: var(--card-bg);
|
|
|
|
|
+ color: var(--text-color);
|
|
|
|
|
+ transition: var(--transition);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .search-input:focus {
|
|
|
|
|
+ outline: none;
|
|
|
|
|
+ border-color: var(--primary-color);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .search-icon {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 12px;
|
|
|
|
|
+ color: var(--light-text);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .voice-search {
|
|
|
|
|
+ margin-left: 10px;
|
|
|
|
|
+ background: none;
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ color: var(--primary-color);
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .user-actions {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ margin-left: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .user-avatar {
|
|
|
|
|
+ width: 32px;
|
|
|
|
|
+ height: 32px;
|
|
|
|
|
+ border-radius: 50%;
|
|
|
|
|
+ background-color: var(--primary-color);
|
|
|
|
|
+ color: white;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .user-menu {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: 40px;
|
|
|
|
|
+ right: 0;
|
|
|
|
|
+ background-color: var(--bg-color);
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ box-shadow: var(--shadow);
|
|
|
|
|
+ width: 160px;
|
|
|
|
|
+ padding: 10px 0;
|
|
|
|
|
+ display: none;
|
|
|
|
|
+ z-index: 100;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .user-menu.show {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .user-menu-item {
|
|
|
|
|
+ padding: 10px 15px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: var(--transition);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .user-menu-item:hover {
|
|
|
|
|
+ background-color: var(--card-bg);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .theme-toggle {
|
|
|
|
|
+ margin-left: 12px;
|
|
|
|
|
+ background: none;
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ color: var(--text-color);
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /* 主内容区 */
|
|
|
|
|
+ .main-content {
|
|
|
|
|
+ margin-top: 60px;
|
|
|
|
|
+ padding: 15px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /* 主视觉轮播 */
|
|
|
|
|
+ .carousel {
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ height: 200px;
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .carousel-inner {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ transition: transform 0.5s ease;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .carousel-item {
|
|
|
|
|
+ min-width: 100%;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .carousel-image {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ object-fit: cover;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .carousel-caption {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ bottom: 0;
|
|
|
|
|
+ left: 0;
|
|
|
|
|
+ right: 0;
|
|
|
|
|
+ padding: 15px;
|
|
|
|
|
+ background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
|
|
|
|
|
+ color: white;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .carousel-title {
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ margin-bottom: 5px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .carousel-tag {
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ background-color: var(--accent-color);
|
|
|
|
|
+ color: white;
|
|
|
|
|
+ padding: 3px 8px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ margin-right: 5px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .carousel-indicators {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ bottom: 10px;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ transform: translateX(-50%);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .indicator {
|
|
|
|
|
+ width: 8px;
|
|
|
|
|
+ height: 8px;
|
|
|
|
|
+ border-radius: 50%;
|
|
|
|
|
+ background-color: rgba(255, 255, 255, 0.5);
|
|
|
|
|
+ margin: 0 4px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .indicator.active {
|
|
|
|
|
+ background-color: white;
|
|
|
|
|
+ width: 16px;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /* 智能规划入口 */
|
|
|
|
|
+ .planning-card {
|
|
|
|
|
+ background-color: var(--card-bg);
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+ padding: 20px;
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+ box-shadow: var(--shadow);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .planning-title {
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ margin-bottom: 15px;
|
|
|
|
|
+ color: var(--primary-color);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .planning-title i {
|
|
|
|
|
+ margin-right: 8px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .form-group {
|
|
|
|
|
+ margin-bottom: 15px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .form-label {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ margin-bottom: 5px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ color: var(--light-text);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .form-input {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 40px;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ border: 1px solid #dfe6e9;
|
|
|
|
|
+ padding: 0 15px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ background-color: var(--bg-color);
|
|
|
|
|
+ color: var(--text-color);
|
|
|
|
|
+ transition: var(--transition);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .form-input:focus {
|
|
|
|
|
+ outline: none;
|
|
|
|
|
+ border-color: var(--primary-color);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .tags-container {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ margin-top: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .tag {
|
|
|
|
|
+ padding: 6px 12px;
|
|
|
|
|
+ background-color: var(--bg-color);
|
|
|
|
|
+ border: 1px solid #dfe6e9;
|
|
|
|
|
+ border-radius: 16px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: var(--transition);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .tag.selected {
|
|
|
|
|
+ background-color: var(--primary-color);
|
|
|
|
|
+ color: white;
|
|
|
|
|
+ border-color: var(--primary-color);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .generate-btn {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 45px;
|
|
|
|
|
+ background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
|
|
|
|
|
+ color: white;
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ margin-top: 10px;
|
|
|
|
|
+ transition: var(--transition);
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .generate-btn:hover {
|
|
|
|
|
+ transform: translateY(-2px);
|
|
|
|
|
+ box-shadow: 0 6px 12px rgba(74, 107, 223, 0.3);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .generate-btn::after {
|
|
|
|
|
+ content: '';
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: -50%;
|
|
|
|
|
+ left: -50%;
|
|
|
|
|
+ width: 200%;
|
|
|
|
|
+ height: 200%;
|
|
|
|
|
+ background: linear-gradient(
|
|
|
|
|
+ to bottom right,
|
|
|
|
|
+ rgba(255, 255, 255, 0) 0%,
|
|
|
|
|
+ rgba(255, 255, 255, 0) 45%,
|
|
|
|
|
+ rgba(255, 255, 255, 0.5) 50%,
|
|
|
|
|
+ rgba(255, 255, 255, 0) 55%,
|
|
|
|
|
+ rgba(255, 255, 255, 0) 100%
|
|
|
|
|
+ );
|
|
|
|
|
+ transform: rotate(30deg);
|
|
|
|
|
+ animation: shine 3s infinite;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @keyframes shine {
|
|
|
|
|
+ 0% { transform: translateX(-100%) rotate(30deg); }
|
|
|
|
|
+ 100% { transform: translateX(100%) rotate(30deg); }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .advanced-toggle {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ color: var(--primary-color);
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ margin-top: 15px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .advanced-toggle i {
|
|
|
|
|
+ margin-right: 5px;
|
|
|
|
|
+ transition: transform 0.3s ease;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .advanced-toggle.active i {
|
|
|
|
|
+ transform: rotate(180deg);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .advanced-options {
|
|
|
|
|
+ display: none;
|
|
|
|
|
+ margin-top: 15px;
|
|
|
|
|
+ padding-top: 15px;
|
|
|
|
|
+ border-top: 1px solid #dfe6e9;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .advanced-options.show {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .slider-container {
|
|
|
|
|
+ margin-top: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .slider {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 4px;
|
|
|
|
|
+ -webkit-appearance: none;
|
|
|
|
|
+ background: #dfe6e9;
|
|
|
|
|
+ border-radius: 2px;
|
|
|
|
|
+ outline: none;
|
|
|
|
|
+ margin-top: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .slider::-webkit-slider-thumb {
|
|
|
|
|
+ -webkit-appearance: none;
|
|
|
|
|
+ width: 18px;
|
|
|
|
|
+ height: 18px;
|
|
|
|
|
+ background: var(--primary-color);
|
|
|
|
|
+ border-radius: 50%;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .slider-value {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: var(--light-text);
|
|
|
|
|
+ text-align: right;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /* 实时动态栏 */
|
|
|
|
|
+ .news-ticker {
|
|
|
|
|
+ background-color: var(--card-bg);
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ padding: 10px 15px;
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ box-shadow: var(--shadow);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .news-icon {
|
|
|
|
|
+ color: var(--accent-color);
|
|
|
|
|
+ margin-right: 10px;
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .news-content {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .news-item {
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ margin-right: 30px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ color: var(--text-color);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /* 特色主题推荐 */
|
|
|
|
|
+ .section-title {
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ margin-bottom: 15px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .section-title i {
|
|
|
|
|
+ color: var(--light-text);
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .theme-grid {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ grid-template-columns: repeat(3, 1fr);
|
|
|
|
|
+ gap: 12px;
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .theme-item {
|
|
|
|
|
+ background-color: var(--card-bg);
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ padding: 15px 0;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ box-shadow: var(--shadow);
|
|
|
|
|
+ transition: var(--transition);
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .theme-item:hover {
|
|
|
|
|
+ transform: translateY(-3px);
|
|
|
|
|
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .theme-icon {
|
|
|
|
|
+ width: 40px;
|
|
|
|
|
+ height: 40px;
|
|
|
|
|
+ background-color: var(--primary-color);
|
|
|
|
|
+ border-radius: 50%;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ color: white;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .theme-name {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: var(--text-color);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /* AI精选案例 */
|
|
|
|
|
+ .ugc-list {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ gap: 15px;
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .ugc-item {
|
|
|
|
|
+ background-color: var(--card-bg);
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ box-shadow: var(--shadow);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .ugc-image {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 150px;
|
|
|
|
|
+ object-fit: cover;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .ugc-content {
|
|
|
|
|
+ padding: 15px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .ugc-title {
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .ugc-desc {
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ color: var(--light-text);
|
|
|
|
|
+ margin-bottom: 12px;
|
|
|
|
|
+ display: -webkit-box;
|
|
|
|
|
+ -webkit-line-clamp: 2;
|
|
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .ugc-meta {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: var(--light-text);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .ugc-actions {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .ugc-action {
|
|
|
|
|
+ margin-left: 12px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .ugc-action i {
|
|
|
|
|
+ margin-right: 4px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .ugc-action.liked i {
|
|
|
|
|
+ color: #ff4757;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /* 底部辅助区 */
|
|
|
|
|
+ .footer-toolbar {
|
|
|
|
|
+ position: fixed;
|
|
|
|
|
+ bottom: 0;
|
|
|
|
|
+ left: 0;
|
|
|
|
|
+ right: 0;
|
|
|
|
|
+ height: 60px;
|
|
|
|
|
+ background-color: var(--bg-color);
|
|
|
|
|
+ box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-around;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 0 20px;
|
|
|
|
|
+ z-index: 1000;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .tool-button {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ color: var(--light-text);
|
|
|
|
|
+ font-size: 10px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ transition: var(--transition);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .tool-button i {
|
|
|
|
|
+ font-size: 20px;
|
|
|
|
|
+ margin-bottom: 4px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .tool-button.sos i {
|
|
|
|
|
+ color: #ff4757;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .tool-button.primary i {
|
|
|
|
|
+ color: var(--primary-color);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .footer {
|
|
|
|
|
+ padding: 20px 15px;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: var(--light-text);
|
|
|
|
|
+ border-top: 1px solid #dfe6e9;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .partners {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ flex-wrap: wrap;
|
|
|
|
|
+ gap: 15px;
|
|
|
|
|
+ margin: 15px 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .partner-logo {
|
|
|
|
|
+ height: 20px;
|
|
|
|
|
+ opacity: 0.7;
|
|
|
|
|
+ filter: grayscale(100%);
|
|
|
|
|
+ transition: var(--transition);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .partner-logo:hover {
|
|
|
|
|
+ opacity: 1;
|
|
|
|
|
+ filter: grayscale(0%);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .social-links {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ gap: 15px;
|
|
|
|
|
+ margin-top: 15px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .social-link {
|
|
|
|
|
+ color: var(--light-text);
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ transition: var(--transition);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .social-link:hover {
|
|
|
|
|
+ color: var(--primary-color);
|
|
|
|
|
+ }
|
|
|
|
|
+ </style>
|
|
|
|
|
+</head>
|
|
|
|
|
+<body>
|
|
|
|
|
+ <!-- 顶部导航栏 -->
|
|
|
|
|
+ <header class="header">
|
|
|
|
|
+ <div class="brand" onclick="goHome()">
|
|
|
|
|
+ <div class="logo">智途</div>
|
|
|
|
|
+ <div class="globe">
|
|
|
|
|
+ <i class="fas fa-globe-americas"></i>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="search-container">
|
|
|
|
|
+ <i class="fas fa-search search-icon"></i>
|
|
|
|
|
+ <input type="text" class="search-input" placeholder="输入目的地、兴趣或关键词...">
|
|
|
|
|
+ <button class="voice-search">
|
|
|
|
|
+ <i class="fas fa-microphone"></i>
|
|
|
|
|
+ </button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="user-actions">
|
|
|
|
|
+ <div class="user-avatar" onclick="toggleUserMenu()">
|
|
|
|
|
+ <i class="fas fa-user"></i>
|
|
|
|
|
+ <div class="user-menu" id="userMenu">
|
|
|
|
|
+ <div class="user-menu-item">
|
|
|
|
|
+ <i class="fas fa-map-marked-alt" style="margin-right: 8px;"></i>我的行程
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="user-menu-item">
|
|
|
|
|
+ <i class="fas fa-heart" style="margin-right: 8px;"></i>收藏
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="user-menu-item">
|
|
|
|
|
+ <i class="fas fa-bell" style="margin-right: 8px;"></i>消息通知
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <button class="theme-toggle" onclick="toggleTheme()">
|
|
|
|
|
+ <i class="fas fa-moon"></i>
|
|
|
|
|
+ </button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </header>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 主内容区 -->
|
|
|
|
|
+ <main class="main-content">
|
|
|
|
|
+ <!-- 主视觉轮播 -->
|
|
|
|
|
+ <div class="carousel">
|
|
|
|
|
+ <div class="carousel-inner" id="carouselInner">
|
|
|
|
|
+ <div class="carousel-item">
|
|
|
|
|
+ <img src="https://images.unsplash.com/photo-1503917988258-f87a78e3c995?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="推荐目的地" class="carousel-image">
|
|
|
|
|
+ <div class="carousel-caption">
|
|
|
|
|
+ <div class="carousel-title">丽江古城</div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <span class="carousel-tag">文化探索</span>
|
|
|
|
|
+ <span class="carousel-tag">摄影圣地</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="carousel-item">
|
|
|
|
|
+ <img src="https://images.unsplash.com/photo-1527631746610-bca00a040d60?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="推荐目的地" class="carousel-image">
|
|
|
|
|
+ <div class="carousel-caption">
|
|
|
|
|
+ <div class="carousel-title">三亚海滩</div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <span class="carousel-tag">亲子乐园</span>
|
|
|
|
|
+ <span class="carousel-tag">度假胜地</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="carousel-item">
|
|
|
|
|
+ <img src="https://images.unsplash.com/photo-1527631746610-bca00a040d60?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="推荐目的地" class="carousel-image">
|
|
|
|
|
+ <div class="carousel-caption">
|
|
|
|
|
+ <div class="carousel-title">西藏拉萨</div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <span class="carousel-tag">小众秘境</span>
|
|
|
|
|
+ <span class="carousel-tag">心灵之旅</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="carousel-indicators" id="carouselIndicators">
|
|
|
|
|
+ <div class="indicator active"></div>
|
|
|
|
|
+ <div class="indicator"></div>
|
|
|
|
|
+ <div class="indicator"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 智能规划入口 -->
|
|
|
|
|
+ <div class="planning-card">
|
|
|
|
|
+ <h3 class="planning-title">
|
|
|
|
|
+ <i class="fas fa-route"></i>智能行程规划
|
|
|
|
|
+ </h3>
|
|
|
|
|
+ <div class="form-group">
|
|
|
|
|
+ <label class="form-label">目的地</label>
|
|
|
|
|
+ <input type="text" class="form-input" placeholder="想去哪里玩?">
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="form-group">
|
|
|
|
|
+ <label class="form-label">出行日期</label>
|
|
|
|
|
+ <input type="text" class="form-input" placeholder="选择日期范围" onfocus="showDatePicker()">
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="form-group">
|
|
|
|
|
+ <label class="form-label">兴趣标签</label>
|
|
|
|
|
+ <div class="tags-container">
|
|
|
|
|
+ <div class="tag">美食</div>
|
|
|
|
|
+ <div class="tag selected">摄影</div>
|
|
|
|
|
+ <div class="tag">冒险</div>
|
|
|
|
|
+ <div class="tag">购物</div>
|
|
|
|
|
+ <div class="tag">文化</div>
|
|
|
|
|
+ <div class="tag">自然</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <button class="generate-btn">一键生成路线</button>
|
|
|
|
|
+ <div class="advanced-toggle" onclick="toggleAdvancedOptions()">
|
|
|
|
|
+ <i class="fas fa-chevron-down"></i>高级筛选
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="advanced-options" id="advancedOptions">
|
|
|
|
|
+ <div class="form-group">
|
|
|
|
|
+ <label class="form-label">预算范围</label>
|
|
|
|
|
+ <div class="slider-container">
|
|
|
|
|
+ <input type="range" min="500" max="10000" value="3000" step="500" class="slider" id="budgetSlider">
|
|
|
|
|
+ <div class="slider-value">¥3000</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="form-group">
|
|
|
|
|
+ <label class="form-label">同行人数</label>
|
|
|
|
|
+ <select class="form-input">
|
|
|
|
|
+ <option>1人</option>
|
|
|
|
|
+ <option>2人</option>
|
|
|
|
|
+ <option selected>3-5人</option>
|
|
|
|
|
+ <option>6-10人</option>
|
|
|
|
|
+ <option>10人以上</option>
|
|
|
|
|
+ </select>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="form-group">
|
|
|
|
|
+ <label class="form-label">交通偏好</label>
|
|
|
|
|
+ <div class="tags-container">
|
|
|
|
|
+ <div class="tag selected">公共交通</div>
|
|
|
|
|
+ <div class="tag">自驾</div>
|
|
|
|
|
+ <div class="tag">包车</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 实时动态栏 -->
|
|
|
|
|
+ <div class="news-ticker">
|
|
|
|
|
+ <i class="fas fa-bullhorn news-icon"></i>
|
|
|
|
|
+ <div class="news-content" id="newsContent">
|
|
|
|
|
+ <div class="news-item">🔥 五一假期热门活动: 丽江古城文化节限时优惠</div>
|
|
|
|
|
+ <div class="news-item">⚠️ 天气预警: 三亚明日有雷阵雨,请携带雨具</div>
|
|
|
|
|
+ <div class="news-item">🎉 新用户专享: 首次规划行程立减100元</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 特色主题推荐 -->
|
|
|
|
|
+ <h3 class="section-title">
|
|
|
|
|
+ 特色主题推荐
|
|
|
|
|
+ <i class="fas fa-ellipsis-h"></i>
|
|
|
|
|
+ </h3>
|
|
|
|
|
+ <div class="theme-grid">
|
|
|
|
|
+ <div class="theme-item">
|
|
|
|
|
+ <div class="theme-icon">
|
|
|
|
|
+ <i class="fas fa-graduation-cap"></i>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="theme-name">毕业旅行</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="theme-item">
|
|
|
|
|
+ <div class="theme-icon">
|
|
|
|
|
+ <i class="fas fa-umbrella-beach"></i>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="theme-name">周末短途</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="theme-item">
|
|
|
|
|
+ <div class="theme-icon">
|
|
|
|
|
+ <i class="fas fa-heart"></i>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="theme-name">蜜月之旅</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="theme-item">
|
|
|
|
|
+ <div class="theme-icon">
|
|
|
|
|
+ <i class="fas fa-hiking"></i>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="theme-name">户外探险</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="theme-item">
|
|
|
|
|
+ <div class="theme-icon">
|
|
|
|
|
+ <i class="fas fa-utensils"></i>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="theme-name">美食之旅</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="theme-item">
|
|
|
|
|
+ <div class="theme-icon">
|
|
|
|
|
+ <i class="fas fa-camera"></i>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="theme-name">摄影路线</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- AI精选案例 -->
|
|
|
|
|
+ <h3 class="section-title">
|
|
|
|
|
+ AI精选案例
|
|
|
|
|
+ <i class="fas fa-ellipsis-h"></i>
|
|
|
|
|
+ </h3>
|
|
|
|
|
+ <div class="ugc-list">
|
|
|
|
|
+ <div class="ugc-item">
|
|
|
|
|
+ <img src="https://images.unsplash.com/photo-1503917988258-f87a78e3c995?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="行程案例" class="ugc-image">
|
|
|
|
|
+ <div class="ugc-content">
|
|
|
|
|
+ <h4 class="ugc-title">7天云南深度游</h4>
|
|
|
|
|
+ <p class="ugc-desc">从昆明到大理再到丽江,体验云南多元文化和壮丽自然风光,特别推荐洱海骑行和玉龙雪山一日游。</p>
|
|
|
|
|
+ <div class="ugc-meta">
|
|
|
|
|
+ <span>by 旅行达人小王</span>
|
|
|
|
|
+ <div class="ugc-actions">
|
|
|
|
|
+ <div class="ugc-action">
|
|
|
|
|
+ <i class="far fa-eye"></i> 1.2k
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="ugc-action">
|
|
|
|
|
+ <i class="far fa-comment"></i> 56
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="ugc-action">
|
|
|
|
|
+ <i class="far fa-heart"></i> 324
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="ugc-item">
|
|
|
|
|
+ <img src="https://images.unsplash.com/photo-1527631746610-bca00a040d60?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="行程案例" class="ugc-image">
|
|
|
|
|
+ <div class="ugc-content">
|
|
|
|
|
+ <h4 class="ugc-title">三亚亲子5日游</h4>
|
|
|
|
|
+ <p class="ugc-desc">专为家庭设计的轻松行程,包含亚龙湾海滩、蜈支洲岛和亚特兰蒂斯水世界,孩子玩得开心,家长也能放松。</p>
|
|
|
|
|
+ <div class="ugc-meta">
|
|
|
|
|
+ <span>by 亲子旅行专家</span>
|
|
|
|
|
+ <div class="ugc-actions">
|
|
|
|
|
+ <div class="ugc-action">
|
|
|
|
|
+ <i class="far fa-eye"></i> 892
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="ugc-action">
|
|
|
|
|
+ <i class="far fa-comment"></i> 43
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="ugc-action liked">
|
|
|
|
|
+ <i class="fas fa-heart"></i> 567
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </main>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 底部辅助区 -->
|
|
|
|
|
+ <div class="footer-toolbar">
|
|
|
|
|
+ <div class="tool-button sos">
|
|
|
|
|
+ <i class="fas fa-life-ring"></i>
|
|
|
|
|
+ <span>SOS</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="tool-button">
|
|
|
|
|
+ <i class="fas fa-home"></i>
|
|
|
|
|
+ <span>首页</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="tool-button">
|
|
|
|
|
+ <i class="fas fa-compass"></i>
|
|
|
|
|
+ <span>发现</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="tool-button">
|
|
|
|
|
+ <i class="fas fa-suitcase"></i>
|
|
|
|
|
+ <span>行程</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="tool-button primary">
|
|
|
|
|
+ <i class="fas fa-robot"></i>
|
|
|
|
|
+ <span>AI客服</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <footer class="footer">
|
|
|
|
|
+ <div class="partners">
|
|
|
|
|
+ <img src="https://via.placeholder.com/80x30?text=Partner1" alt="合作伙伴" class="partner-logo">
|
|
|
|
|
+ <img src="https://via.placeholder.com/80x30?text=Partner2" alt="合作伙伴" class="partner-logo">
|
|
|
|
|
+ <img src="https://via.placeholder.com/80x30?text=Partner3" alt="合作伙伴" class="partner-logo">
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div>© 2023 智途智能旅行规划工具 版权所有</div>
|
|
|
|
|
+ <div class="social-links">
|
|
|
|
|
+ <a href="#" class="social-link">
|
|
|
|
|
+ <i class="fab fa-weixin"></i>
|
|
|
|
|
+ </a>
|
|
|
|
|
+ <a href="#" class="social-link">
|
|
|
|
|
+ <i class="fab fa-weibo"></i>
|
|
|
|
|
+ </a>
|
|
|
|
|
+ <a href="#" class="social-link">
|
|
|
|
|
+ <i class="fab fa-qq"></i>
|
|
|
|
|
+ </a>
|
|
|
|
|
+ <a href="#" class="social-link">
|
|
|
|
|
+ <i class="fab fa-douban"></i>
|
|
|
|
|
+ </a>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </footer>
|
|
|
|
|
+
|
|
|
|
|
+ <script>
|
|
|
|
|
+ // 切换用户菜单
|
|
|
|
|
+ function toggleUserMenu() {
|
|
|
|
|
+ const userMenu = document.getElementById('userMenu');
|
|
|
|
|
+ userMenu.classList.toggle('show');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 切换主题
|
|
|
|
|
+ function toggleTheme() {
|
|
|
|
|
+ const body = document.body;
|
|
|
|
|
+ const themeToggle = document.querySelector('.theme-toggle i');
|
|
|
|
|
+
|
|
|
|
|
+ if (body.getAttribute('data-theme') === 'dark') {
|
|
|
|
|
+ body.removeAttribute('data-theme');
|
|
|
|
|
+ themeToggle.classList.remove('fa-sun');
|
|
|
|
|
+ themeToggle.classList.add('fa-moon');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ body.setAttribute('data-theme', 'dark');
|
|
|
|
|
+ themeToggle.classList.remove('fa-moon');
|
|
|
|
|
+ themeToggle.classList.add('fa-sun');
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 返回首页
|
|
|
|
|
+ function goHome() {
|
|
|
|
|
+ window.scrollTo({ top: 0, behavior: 'smooth' });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 切换高级选项
|
|
|
|
|
+ function toggleAdvancedOptions() {
|
|
|
|
|
+ const options = document.getElementById('advancedOptions');
|
|
|
|
|
+ const toggle = document.querySelector('.advanced-toggle');
|
|
|
|
|
+ const icon = toggle.querySelector('i');
|
|
|
|
|
+
|
|
|
|
|
+ options.classList.toggle('show');
|
|
|
|
|
+ toggle.classList.toggle('active');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 标签选择
|
|
|
|
|
+ document.querySelectorAll('.tag').forEach(tag => {
|
|
|
|
|
+ tag.addEventListener('click', function() {
|
|
|
|
|
+ this.classList.toggle('selected');
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 预算滑块
|
|
|
|
|
+ const budgetSlider = document.getElementById('budgetSlider');
|
|
|
|
|
+ const sliderValue = document.querySelector('.slider-value');
|
|
|
|
|
+
|
|
|
|
|
+ budgetSlider.addEventListener('input', function() {
|
|
|
|
|
+ sliderValue.textContent = `¥${this.value}`;
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 轮播图
|
|
|
|
|
+ let currentSlide = 0;
|
|
|
|
|
+ const carouselInner = document.getElementById('carouselInner');
|
|
|
|
|
+ const indicators = document.querySelectorAll('.indicator');
|
|
|
|
|
+ const totalSlides = document.querySelectorAll('.carousel-item').length;
|
|
|
|
|
+
|
|
|
|
|
+ function updateCarousel() {
|
|
|
|
|
+ carouselInner.style.transform = `translateX(-${currentSlide * 100}%)`;
|
|
|
|
|
+
|
|
|
|
|
+ indicators.forEach((indicator, index) => {
|
|
|
|
|
+ if (index === currentSlide) {
|
|
|
|
|
+ indicator.classList.add('active');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ indicator.classList.remove('active');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ indicators.forEach((indicator, index) => {
|
|
|
|
|
+ indicator.addEventListener('click', () => {
|
|
|
|
|
+ currentSlide = index;
|
|
|
|
|
+ updateCarousel();
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 自动轮播
|
|
|
|
|
+ setInterval(() => {
|
|
|
|
|
+ currentSlide = (currentSlide + 1) % totalSlides;
|
|
|
|
|
+ updateCarousel();
|
|
|
|
|
+ }, 5000);
|
|
|
|
|
+
|
|
|
|
|
+ // 新闻跑马灯
|
|
|
|
|
+ const newsContent = document.getElementById('newsContent');
|
|
|
|
|
+ const newsItems = document.querySelectorAll('.news-item');
|
|
|
|
|
+ let currentNews = 0;
|
|
|
|
|
+
|
|
|
|
|
+ function scrollNews() {
|
|
|
|
|
+ currentNews = (currentNews + 1) % newsItems.length;
|
|
|
|
|
+ newsContent.style.transform = `translateX(-${currentNews * 100}%)`;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ setInterval(scrollNews, 3000);
|
|
|
|
|
+
|
|
|
|
|
+ // 点赞功能
|
|
|
|
|
+ document.querySelectorAll('.ugc-action').forEach(action => {
|
|
|
|
|
+ if (action.querySelector('.fa-heart')) {
|
|
|
|
|
+ action.addEventListener('click', function() {
|
|
|
|
|
+ const heartIcon = this.querySelector('i');
|
|
|
|
|
+ const isLiked = this.classList.contains('liked');
|
|
|
|
|
+ const countElement = this.querySelector('i').nextSibling;
|
|
|
|
|
+
|
|
|
|
|
+ if (isLiked) {
|
|
|
|
|
+ this.classList.remove('liked');
|
|
|
|
|
+ heartIcon.classList.remove('fas');
|
|
|
|
|
+ heartIcon.classList.add('far');
|
|
|
|
|
+ countElement.textContent = ` ${parseInt(countElement.textContent) - 1}`;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.classList.add('liked');
|
|
|
|
|
+ heartIcon.classList.remove('far');
|
|
|
|
|
+ heartIcon.classList.add('fas');
|
|
|
|
|
+ countElement.textContent = ` ${parseInt(countElement.textContent) + 1}`;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 显示日期选择器
|
|
|
|
|
+ function showDatePicker() {
|
|
|
|
|
+ // 实际项目中可以集成第三方日期选择器库
|
|
|
|
|
+ alert('将显示日期选择器');
|
|
|
|
|
+ }
|
|
|
|
|
+ </script>
|
|
|
|
|
+</body>
|
|
|
|
|
+</html>
|