page { font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif; position: relative; height: 100%; } /* 搜索框样式 */ .sousuo { background-color: rgba(255, 255, 255, 0.7); backdrop-filter: blur(10rpx); border: 1rpx solid rgba(255, 205, 210, 0.5); display: flex; height: 80rpx; margin: 30rpx; border-radius: 40rpx; align-items: center; padding: 0 20rpx; border: 1rpx solid #FFCDD2; margin-top: -60rpx; position: relative; z-index: 2; box-shadow: 0 4rpx 12rpx rgba(211, 47, 47, 0.1); } .sousuo .item1 { padding-right: 20rpx; } .sousuo .item1 .iconfont { color: #D32F2F; font-size: 36rpx; display: flex; align-items: center; justify-content: center; width: 60rpx; height: 60rpx; border-radius: 50%; background: rgba(211, 47, 47, 0.05); padding: 12rpx; } .search { height: 100%; width: 100%; font-size: 28rpx; color: #333; } /* 菜单容器 */ .menu { margin: 30rpx; background: transparent; } .service-container { display: flex; flex-wrap: wrap; justify-content: space-between; } /* 优化后的菜单项 */ .item { width: 180rpx; height: 180rpx; border-radius: 50%; background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(10rpx); border: 1rpx solid rgba(255, 255, 255, 0.3); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20rpx; box-sizing: border-box; margin-bottom: 24rpx; box-shadow: 0 4rpx 16rpx rgba(211, 47, 47, 0.08); transition: all 0.3s ease; position: relative; overflow: hidden; } /* 调整顶部装饰线为圆形适配 */ .item::before { content: ""; position: absolute; top: 10rpx; left: 50%; transform: translateX(-50%); width: 40%; height: 3rpx; background: linear-gradient(90deg, #D32F2F, #FF8A80); border-radius: 3rpx; z-index: 1; } /* 点击效果增强 */ .item:active { transform: scale(0.95); background: rgba(255, 255, 255, 0.9); } /* 内容适配调整 */ .service-link { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; } /* 图标调整 */ .img { width:80rpx; height: 100rpx; margin-bottom: 10rpx; padding: 12rpx; background: rgba(211, 47, 47, 0.1); border-radius: 50%; transition: all 0.3s; } .item:active .img { transform: scale(0.92); background: rgba(211, 47, 47, 0.08); } /* 文字样式微调 */ .title { font-size: 26rpx; color: #D32F2F; text-align: center; width: 100%; padding: 0 10rpx; } .hero-gradient { background: linear-gradient( to bottom, transparent 0%, rgba(255,255,255,0.3) 30%, rgba(255,255,255,0.7) 70%, #FFFFFF 100% ); } /* 背景装饰 */ .background-overlay { position: fixed; bottom: 0; left: 0; width: 100%; height: 300rpx; background: linear-gradient(to top, rgba(255,245,245,1) 0%, rgba(255,245,245,0) 30%), url('/images/index/qizhi.jpg') bottom center/100% auto no-repeat; z-index: -1; pointer-events: none; } .page-container { position: relative; min-height: 100vh; padding-bottom: 400rpx; } /* 故事会容器 */ .story-container { margin: 40rpx 30rpx 0; } .section-header { margin-bottom: 30rpx; position: relative; } .section-title { font-size: 36rpx; color: #D32F2F; font-weight: bold; display: block; margin: 20rpx 0 30rpx 20rpx; } .brush-stroke { width: 150rpx; height: 16rpx; background: url('data:image/svg+xml;utf8,'); margin-top: 10rpx; } .story-scroll { width: 100%; white-space: nowrap; } .story-list { display: inline-flex; } .story-card { display: inline-flex; width: 400rpx; height: 300rpx; margin-right: 24rpx; position: relative; overflow: hidden; border-radius: 12rpx; box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.08); transition: all 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28); } .story-card image { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; } .story-card:hover image { transform: scale(1.03); } .story-info { position: absolute; bottom: 0; left: 0; right: 0; padding: 24rpx; background: linear-gradient( to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.4) 60%, transparent 100% ); backdrop-filter: blur(2px); } .story-title { color: white; font-size: 30rpx; font-weight: 500; line-height: 1.4; text-shadow: 0 1rpx 3rpx rgba(0,0,0,0.3); letter-spacing: 0.5rpx; position: relative; padding-bottom: 8rpx; } .story-title::after { content: ""; position: absolute; bottom: 0; left: 0; width: 40rpx; height: 2rpx; background: white; opacity: 0.8; } .story-card:active { transform: translateY(-4rpx); box-shadow: 0 8rpx 24rpx rgba(0,0,0,0.12); } /* 自定义画廊 */ .custom-gallery { margin: 40rpx 30rpx 0; } .custom-frame { width: 400rpx; height: 300rpx; position: relative; display: inline-block; margin-right: 30rpx; transition: all 0.3s ease; } .custom-frame image { width: 100%; height: 100%; object-fit: cover; clip-path: path('M20,0 L380,0 Q400,20 380,40 L340,80 Q320,100 340,120 L380,160 Q400,180 380,200 L340,240 Q320,260 340,280 L380,300 Q400,280 380,260 L340,220 Q320,200 340,180 L380,140 Q400,120 380,100 L340,60 Q320,40 340,20 L380,0'); transition: all 0.5s ease; filter: brightness(0.95); } .custom-frame:hover image { filter: brightness(1.05); transform: scale(1.02); } .frame-caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 20rpx; background: linear-gradient(to top, rgba(0,0,0,0.7), transparent); color: white; font-size: 28rpx; text-align: center; } .gallery-scroll { white-space: nowrap; width: 100%; padding: 20rpx 0; } .custom-frame-list { display: inline-flex; } .taolun { width: 800rpx; height: 300rpx; background-color: #ffffff; margin-top: 25rpx; margin-right: 10rpx; margin-left: 10rpx; } /* 优化后的横向功能入口样式 */ .horizontal-features { display: flex; justify-content: flex-start; margin-left: 30rpx; gap: 40rpx; padding: 0; width: calc(100% - 50rpx); } .feature-box { display: flex; flex-direction: column; align-items: center; width: 300rpx; padding: 1rpx 0; border-radius: 16rpx; background: #fff; box-shadow: 0 2rpx 8rpx rgba(211, 47, 47, 0.1); border: 1rpx solid #FFEBEE; } .feature-icon { width: 100rpx; height: 60rpx; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 12rpx; padding: 6rpx; background: linear-gradient(135deg, #FFEBEE 0%, #FFCDD2 100%); } .feature-img { width: 100%; height: 80%; display: block; } .feature-name { font-size: 32rpx; color: #333; margin-bottom: 8rpx; font-weight: 500; } .feature-tag { font-size: 30rpx; color: white; padding: 2rpx 10rpx; border-radius: 12rpx; background: linear-gradient(135deg, #D32F2F 0%, #F44336 100%); } /* 悬浮按钮容器 */ .float-container { position: fixed; right: 20rpx; bottom: 100rpx; z-index: 999; } /* 悬浮按钮 */ .float-btn { width: 200rpx; height: 200rpx; border-radius: 50%; transition: transform 0.3s ease; } .float-btn:active { transform: scale(0.9); } /* 小人走路动画 */ @keyframes walk { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-20rpx); } } .float-btn.walking { animation: walk 1s infinite; } /* 弹出菜单 */ .float-menu { position: absolute; right: 0; bottom: 100rpx; width: 200rpx; background: #fff; border-radius: 8rpx; box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.15); transform-origin: bottom right; animation: scaleIn 0.2s ease-out; } .menu-item { padding: 20rpx; text-align: center; border-bottom: 1rpx solid #f5f5f5; } .menu-item:last-child { border-bottom: none; } /* 遮罩层 */ .mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); z-index: 998; } /* 动画效果 */ @keyframes scaleIn { from { transform: scale(0); opacity: 0; } to { transform: scale(1); opacity: 1; } } /* 地图容器 */ #myMap { width: 100%; height: 150px; } /* 自定义弹窗样式 */ .custom-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.8); z-index: 1000; display: flex; justify-content: center; align-items: center; } .modal-content { width: 85%; max-width: 650rpx; background: #fff; border-radius: 20rpx; overflow: hidden; position: relative; } .scroll-container { max-height: 70vh; padding-bottom: 120rpx; } /* 弹窗内图片样式 */ .modal-image { width: 100%; display: block; } /* 弹窗主要内容区域 */ .main-content { padding: 30rpx; } /* 标题和地址区域 */ .header { margin-bottom: 30rpx; } .modal-title { font-size: 36rpx; font-weight: bold; color: #333; } .modal-address { font-size: 26rpx; color: #666; margin-top: 10rpx; display: flex; align-items: center; } /* 描述文本样式 */ .modal-description { font-size: 28rpx; line-height: 1.8; color: #444; margin-bottom: 30rpx; } /* 详情列表样式 */ .detail-list { border-top: 1rpx solid #eee; padding-top: 20rpx; } .detail-item { display: flex; justify-content: space-between; padding: 20rpx 0; border-bottom: 1rpx solid #f5f5f5; } .detail-label { color: #666; font-size: 28rpx; } /* 详情值容器样式 */ .detail-value-container { display: flex; align-items: center; } /* 门票相关样式 */ .free-text { color: #07c160; font-weight: bold; } .fee-text { color: #e64340; } .free-badge { background: #07c160; color: white; padding: 4rpx 12rpx; border-radius: 20rpx; font-size: 24rpx; margin-left: 10rpx; } .highlight-item { background: #f8f8f8; border-radius: 10rpx; padding: 20rpx; margin: 15rpx -20rpx; } /* 底部操作栏样式 */ .action-bar { position: absolute; bottom: 0; left: 0; right: 0; display: flex; padding: 20rpx; box-sizing: border-box; background: linear-gradient(to top, #fff 0%, rgba(255,255,255,0.8) 50%, transparent 100%); backdrop-filter: blur(10rpx); border-top: 1rpx solid #eee; } .nav-btn, .close-btn { flex: 1; margin: 0 10rpx; height: 80rpx; line-height: 80rpx; border-radius: 40rpx; font-size: 28rpx; font-weight: 500; } .nav-btn { background: #D32F2F; color: white; } .close-btn { background: #f5f5f5; color: #666; } /* 顶部关闭图标样式 */ .top-close { position: absolute; top: 30rpx; right: 30rpx; width: 60rpx; height: 60rpx; border-radius: 50%; background: rgba(0,0,0,0.5); display: flex; justify-content: center; align-items: center; z-index: 1; } .close-icon { color: white; font-size: 40rpx; } /* 全屏VR样式 */ .fullscreen-vr { position: fixed; top: 0; left: 0; width: 100%; height: 100vh; z-index: 9999; } .vr-mask { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.8); z-index: 9998; } .close-vr-btn { position: absolute; top: 40rpx; right: 40rpx; width: 80rpx; height: 80rpx; background: rgba(0,0,0,0.5); border-radius: 50%; display: flex; justify-content: center; align-items: center; z-index: 10000; } .close-vr-btn .icon { color: #fff; font-size: 50rpx; line-height: 1; } .fullscreen-vr .vr-tip { position: absolute; bottom: 60rpx; left: 0; right: 0; text-align: center; color: #fff; font-size: 28rpx; background: rgba(0,0,0,0.5); padding: 16rpx; border-radius: 40rpx; width: 300rpx; margin: 0 auto; } /* VR容器样式 */ .vr-container { margin: 30rpx 0; padding: 0 20rpx; } .vr-scroll { width: 100%; white-space: nowrap; margin-top: 20rpx; } .vr-list { display: inline-flex; } .vr-card { display: inline-block; width: 280rpx; margin-right: 20rpx; border-radius: 12rpx; overflow: hidden; box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.1); background: #fff; } .vr-image { width: 400rpx; height: 300rpx; } .vr-info { padding: 16rpx; } .vr-title { font-size: 28rpx; font-weight: bold; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .vr-desc { font-size: 24rpx; color: #888; display: block; } /* 增强版VR模态框样式 */ .vr-modal { position: fixed; top: 0; left: 0; width: 100vw; /* 使用视窗单位确保全覆盖 */ height: 100vh; background: #000; /* 改为黑色背景更沉浸 */ z-index: 9999; /* 提高层级 */ touch-action: pan-y pinch-zoom; /* 允许手势操作 */ overflow: hidden; } /* 标题栏优化 */ .modal-header { padding: 15rpx 25rpx; display: flex; justify-content: space-between; align-items: center; background: rgba(0,0,0,0.5); /* 半透明背景 */ position: absolute; top: 0; left: 0; width: 100%; z-index: 100; backdrop-filter: blur(10rpx); /* 毛玻璃效果 */ border-bottom: none; } .modal-title { font-size: 34rpx; font-weight: bold; color: #fff; /* 白色文字 */ } /* 关闭按钮优化 */ .close-btn { font-size: 50rpx; /* 放大关闭按钮 */ color: #fff; padding: 0 30rpx; line-height: 1; } /* WebView容器增强 */ .webview-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding-top: 80rpx; /* 给标题栏留空间 */ } /* 响应式调整 */ @media (min-width: 768px) { .vr-modal { max-width: 768px; /* 平板设备居中显示 */ left: 50%; transform: translateX(-50%); } } /* 自定义导航栏样式 */ .custom-navbar { position: fixed; top: 0; left: 0; width: 100%; height: 50px; background-color: #fff; display: flex; align-items: center; padding: 0 15px; box-shadow: 0 1px 6px rgba(0,0,0,0.1); z-index: 1000; } .navbar-back { display: flex; align-items: center; } .back-icon { width: 20px; height: 20px; margin-right: 5px; } .navbar-title { flex: 1; text-align: center; font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* 地图容器相对定位 */ .map-container { position: relative; width: 100%; height: 60vh; /* 与地图同高 */ } /* 渐变遮罩层 */ .map-fade { position: absolute; bottom: 0; left: 0; width: 100%; height: 80px; /* 渐变区域高度 */ background: linear-gradient( to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100% ); pointer-events: none; /* 防止遮挡地图交互 */ } /* 内容容器添加负外边距 */ .content-container { margin-top: -40px; /* 与渐变高度配合 */ position: relative; z-index: 1; background: #fff; /* 确保背景色与渐变终点一致 */ } /* pages/index/index.wxss */ .dynamic-features { display: flex; flex-wrap: wrap; justify-content: space-between; margin: 30rpx; } .feature-item { border-radius: 16rpx; background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(10rpx); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20rpx; margin-bottom: 24rpx; box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1); transition: all 0.3s ease; } .feature-item.large { width: 100%; height: 200rpx; } .feature-item.medium { width: 48%; height: 180rpx; } .feature-item.small { width: 30%; height: 150rpx; } .feature-icon { width: 80rpx; height: 80rpx; margin-bottom: 16rpx; } .feature-title { font-size: 28rpx; color: #D32F2F; font-weight: 500; } /* 动态特征网格样式 */ .dynamic-features { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 15px; padding: 15px; } .feature-item { display: flex; flex-direction: column; align-items: center; transition: all 0.3s ease; } .feature-item.large { grid-column: span 2; grid-row: span 2; } .feature-item.medium { grid-column: span 1; grid-row: span 1; } .feature-item.small { opacity: 0.8; transform: scale(0.9); } /* 根据布局类型调整的样式 */ .map-focused .map-container { height: 60vh !important; } .feature-focused .dynamic-features { grid-template-columns: repeat(2, 1fr); } .vr-focused .vr-container { height: 50vh !important; } /* 容器布局 */ .service-container { display: grid; grid-template-columns: 3fr 1fr; /* 3:1 列宽比例 */ grid-template-rows: 1fr 1fr; /* 两行等高 */ gap: 15rpx; padding: 20rpx; height: 500rpx; /* 固定高度 */ } /* 主推荐项样式 */ .main-item { grid-column: 1; /* 第一列 */ grid-row: 1 / span 2; /* 跨两行 */ } /* 侧边项样式 */ .side-item { grid-column: 2; /* 第二列 */ grid-row: auto; /* 自动行高 */ } /* 相框基础样式 */ .item-frame { width: 100%; height: 100%; border: 6rpx solid #ff4d4f; border-radius: 12rpx; padding: 20rpx; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; background: #fff; } /* 主推荐项特殊样式 */ .main-item .item-frame { border-width: 8rpx; box-shadow: 0 8rpx 24rpx rgba(255, 77, 79, 0.3); background: #fff9f9; } /* 图标容器 */ .icon-container { margin-bottom: 20rpx; display: flex; justify-content: center; align-items: center; } /* 主推荐项图标 */ .main-item .icon-container { width: 140rpx; height: 140rpx; } /* 侧边项图标 */ .side-item .icon-container { width: 80rpx; height: 80rpx; } /* 图片样式 */ .img { width: 100%; height: 100%; } /* 标题样式 */ .title { font-size: 28rpx; color: #333; text-align: center; } /* 主推荐项标题 */ .main-item .title { font-size: 36rpx; font-weight: bold; } /* 推荐标签 */ .top-tag { position: absolute; top: 10rpx; right: 10rpx; background: #ff4d4f; color: white; padding: 4rpx 15rpx; border-radius: 20rpx; font-size: 24rpx; font-weight: bold; z-index: 10; transform: rotate(15deg); box-shadow: 0 4rpx 8rpx rgba(0, 0, 0, 0.2); }