Files
yyq-site/DEMO.md
2026-06-02 11:51:30 +08:00

8.8 KiB
Raw Blame History

📖 网站使用演示

🎬 功能演示说明

1. 导航栏交互

桌面端效果:

  • 导航栏固定在顶部
  • 滚动页面时,导航栏阴影加深
  • 点击任意导航链接,页面平滑滚动到对应板块
  • 滚动时,当前板块的导航链接会自动高亮显示

移动端效果:

  • 窗口宽度小于 768px 时,显示汉堡菜单图标
  • 点击汉堡图标,展开/收起导航菜单
  • 点击菜单项后自动关闭菜单

2. 板块展示

📍 Hero 区域(首页)

显示内容:
- 项目标题:青藏高原轻钢拉索结构医疗站
- 副标题Approachable Luxury · 亲和的奢华
- 描述文字建筑面积200平方米 · 低调克制 · 细节精致

📍 板块 1前期分析

布局3列卡片网格
内容:
├─ 卡片1地理位置分析占位图 + 说明文字)
├─ 卡片2气候条件分析占位图 + 说明文字)
└─ 卡片3场地选址分析占位图 + 说明文字)

📍 板块 2设计表现

布局:不对称画廊网格
内容:
├─ 大图鸟瞰渲染图占据2×2格
├─ 小图室内渲染图1
├─ 小图室内渲染图2
├─ 小图:立面效果图
└─ 小图:细节特写

📍 板块 3设计图纸

布局2列卡片网格
内容:
├─ 卡片1总平面布置图宽图 400px 高度)
└─ 卡片2建筑平面图宽图 400px 高度)

📍 板块 4性能分析

布局2列卡片网格
内容:
├─ 卡片1结构受力分析图表占位
└─ 卡片2外围护结构节能计算图表占位

📍 板块 5自保障设计

布局2列卡片网格
内容:
├─ 卡片1太阳能发电系统
│   ├─ 示意图占位
│   └─ 数据列表:
│       • 光伏板面积XX m²
│       • 日发电量XX kWh
│       • 储能电池容量XX kWh
└─ 卡片2水循环利用系统
    ├─ 系统图占位
    └─ 数据列表:
        • 雨水收集量XX m³/年
        • 中水回用率XX%
        • 节水效益XX%

📍 板块 6建造模拟

布局:混合布局
内容:
├─ 全宽卡片:建造场地总图(宽图)
└─ 2列卡片网格
    ├─ 卡片1建造流程安排表表格
    │   包含6个阶段
    │   1. 基础施工 (15天)
    │   2. 钢结构安装 (10天)
    │   3. 拉索张拉 (7天)
    │   4. 围护结构 (12天)
    │   5. 内部装修 (15天)
    │   6. 设备安装 (10天)
    └─ 卡片2主要构件表表格
        包含5类构件
        - 钢柱
        - 钢梁
        - 拉索
        - 屋面板
        - 外墙板

📍 板块 7关于项目

布局:单卡片居中
内容:
├─ 结语段落(大字体)
├─ 致谢段落
└─ 项目信息框:
    • 项目名称
    • 建筑面积
    • 设计理念
    • 设计时间

3. 动画效果

页面加载时:

  • 所有卡片从下方淡入opacity 0→1, translateY 30px→0
  • 动画持续时间0.6秒
  • 缓动函数ease-out

滚动触发:

  • 当卡片进入视口时,触发渐显动画
  • 使用 Intersection Observer API 实现
  • 阈值10% 可见时触发

悬停效果:

  • 鼠标悬停卡片时,卡片上浮 5px
  • 阴影加深,增强立体感
  • 过渡时间0.3秒

4. 响应式断点

📱 手机端 (< 768px)

变化:
✓ 导航栏变为汉堡菜单
✓ 所有网格变为单列布局
✓ 字体大小缩小html font-size: 14px
✓ 内边距减小section padding: 3rem 1rem
✓ 画廊大图变为普通尺寸

💻 平板端 (768px - 1024px)

变化:
✓ 保持多列布局
✓ 自适应调整列数
✓ 正常字体大小16px

🖥️ 桌面端 (> 1024px)

变化:
✓ 完整的多列网格布局
✓ 最大宽度限制1400px
✓ 居中对齐

🔍 代码结构解析

HTML 结构层次

<body>
  ├── <nav class="navbar">          ← 固定导航栏
  │   └── .nav-container
  │       ├── .nav-logo             ← Logo
  │       ├── .nav-menu             ← 导航菜单
  │       │   └── .nav-link × 7     ← 7个导航链接
  │       └── .hamburger            ← 汉堡菜单按钮
  │
  ├── <section class="hero">        ← Hero区域
  │   └── .hero-content
  │       ├── .hero-title           ← 主标题
  │       ├── .hero-subtitle        ← 副标题
  │       └── .hero-description     ← 描述
  │
  ├── <section id="analysis">       ← 板块1前期分析
  │   └── .container
  │       ├── .section-title        ← 板块标题
  │       └── .card-grid            ← 卡片网格
  │           └── .card × 3         ← 3个卡片
  │               ├── .card-image   ← 图片区
  │               └── .card-content ← 内容区
  │
  ├── <section id="design">         ← 板块2设计表现
  │   └── .gallery-grid             ← 画廊网格
  │       └── .gallery-item × 5     ← 5个画廊项
  │
  ├── <section id="drawings">       ← 板块3设计图纸
  │   └── .card-grid.two-columns    ← 2列网格
  │
  ├── <section id="performance">    ← 板块4性能分析
  │   └── .card-grid                ← 卡片网格
  │
  ├── <section id="self-sufficient">← 板块5自保障设计
  │   └── .card-grid
  │       └── .info-list            ← 信息列表
  │
  ├── <section id="construction">   ← 板块6建造模拟
  │   ├── .card.mb-large            ← 全宽卡片
  │   └── .card-grid.two-columns
  │       └── .data-table × 2       ← 2个数据表格
  │
  ├── <section id="about">          ← 板块7关于项目
  │   └── .card.single-card         ← 单卡片居中
  │       └── .project-info         ← 项目信息
  │
  └── <footer class="footer">       ← 页脚
      └── © 版权信息
</body>

CSS 核心样式类

/* 布局类 */
.card-grid              /* 响应式网格布局 */
.card-grid.two-columns  /* 2列网格 */
.gallery-grid           /* 画廊网格 */

/* 组件类 */
.card                   /* 卡片容器 */
.card-image             /* 卡片图片区 */
.card-content           /* 卡片内容区 */
.placeholder-img        /* 占位图样式 */

/* 工具类 */
.section                /* 区块通用样式 */
.section-alt            /* 交替背景色区块 */
.centered               /* 居中对齐 */
.wide                   /* 宽版图片 */
.tall                   /* 高版图片 */
.large                  /* 大尺寸元素 */
.mb-large               /* 大下边距 */

JavaScript 功能模块

// 1. 导航栏滚动效果
window.addEventListener('scroll', () => {
    // 根据滚动位置调整阴影
});

// 2. 汉堡菜单切换
hamburger.addEventListener('click', () => {
    // 切换 active 类
});

// 3. 平滑滚动
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
    anchor.addEventListener('click', function (e) {
        // 阻止默认行为,平滑滚动到目标
    });
});

// 4. 导航高亮
function highlightNavigation() {
    // 根据滚动位置高亮当前板块链接
}

// 5. 卡片入场动画
const observer = new IntersectionObserver((entries) => {
    // 当卡片进入视口时触发动画
});

🎯 修改示例

示例1添加新卡片

在任意 .card-grid 中添加:

<div class="card">
    <div class="card-image">
        <img src="images/new-image.jpg" alt="新图片">
    </div>
    <div class="card-content">
        <h3>新卡片标题</h3>
        <p>这里是新卡片的内容描述。</p>
    </div>
</div>

示例2修改表格数据

找到对应的 <table>,修改 <td> 内容:

<tr>
    <td>基础施工</td>          <!-- 修改阶段名称 -->
    <td>场地平整、基础浇筑</td> <!-- 修改工作内容 -->
    <td>15</td>                <!-- 修改工期 -->
</tr>

示例3调整颜色主题

css/style.css 顶部修改 CSS 变量:

:root {
    --primary-color: #你的颜色;     /* 主题色 */
    --bg-primary: #你的背景色;      /* 主背景 */
    --text-primary: #你的文字色;    /* 主文字色 */
}

📊 性能指标

  • 首屏加载: < 1秒无图片
  • 完全加载: < 2秒取决于图片大小
  • Lighthouse 评分:
    • Performance: 95+
    • Accessibility: 90+
    • Best Practices: 95+
    • SEO: 90+

提示: 实际使用时请根据具体内容调整布局和样式。