122 lines
3.2 KiB
Markdown
122 lines
3.2 KiB
Markdown
# 标题块动画统一同步
|
||
|
||
## 修改概述
|
||
将报告页面的标题块动画与首页保持一致,使用 AnimatedElement 组件替代 Container 的 revealDistance 属性,实现统一的 fadeInUp 动画效果。
|
||
|
||
## 修改详情
|
||
|
||
### 1. 技术报告索引页面 (`/src/pages/report/index.astro`)
|
||
|
||
**修改内容:**
|
||
- 添加 AnimatedElement 组件导入
|
||
- 将 Container 组件包裹在 AnimatedElement 中
|
||
- 移除 Container 的 revealDistance 属性
|
||
- 设置 fadeInUp 动画,延迟 200ms
|
||
|
||
**修改前:**
|
||
```astro
|
||
<Container
|
||
variant="glass"
|
||
size="large"
|
||
padding="xl"
|
||
className="text-center mb-12"
|
||
revealDistance="48px"
|
||
>
|
||
```
|
||
|
||
**修改后:**
|
||
```astro
|
||
<AnimatedElement animation="fadeInUp" delay={200}>
|
||
<Container
|
||
variant="glass"
|
||
size="large"
|
||
padding="xl"
|
||
className="text-center mb-12"
|
||
>
|
||
```
|
||
|
||
### 2. 20250609 报告页面 (`/src/pages/report/20250609/index.astro`)
|
||
|
||
**修改内容:**
|
||
- 添加 AnimatedElement 组件导入
|
||
- 将 Container 组件包裹在 AnimatedElement 中
|
||
- 移除 Container 的 revealDistance 属性
|
||
- 移除 section 的 data-reveal 相关属性
|
||
- 设置 fadeInUp 动画,延迟 200ms
|
||
|
||
**修改前:**
|
||
```astro
|
||
<section id="intro" class="report-header scroll-mt-16" data-reveal data-reveal-distance="64px">
|
||
<Container
|
||
variant="glass"
|
||
size="full"
|
||
padding="xl"
|
||
className="text-center mb-12 mt-24"
|
||
revealDistance="56px"
|
||
>
|
||
```
|
||
|
||
**修改后:**
|
||
```astro
|
||
<section id="intro" class="report-header scroll-mt-16">
|
||
<AnimatedElement animation="fadeInUp" delay={200}>
|
||
<Container
|
||
variant="glass"
|
||
size="full"
|
||
padding="xl"
|
||
className="text-center mb-12 mt-24"
|
||
>
|
||
```
|
||
|
||
### 3. 20250722 报告页面 (`/src/pages/report/20250722/index.astro`)
|
||
|
||
**状态:** 已经使用 AnimatedElement,无需修改
|
||
- 该页面已经正确使用了 AnimatedElement 包裹 Container
|
||
- 动画效果与其他页面保持一致
|
||
|
||
## 技术优势
|
||
|
||
### 1. 动画一致性
|
||
- 所有页面标题块使用相同的 fadeInUp 动画
|
||
- 统一的延迟时间(200ms)确保用户体验一致性
|
||
- 避免了不同页面间动画效果的不协调
|
||
|
||
### 2. 代码规范性
|
||
- 统一使用 AnimatedElement 组件管理动画
|
||
- 移除了不规范的混合使用 revealDistance 和 data-reveal
|
||
- 提高了代码的可维护性和可读性
|
||
|
||
### 3. 性能优化
|
||
- AnimatedElement 使用 Intersection Observer API
|
||
- 更高效的滚动事件处理
|
||
- 避免了重复的动画逻辑实现
|
||
|
||
## 验证结果
|
||
|
||
✅ **构建验证:** `npm run build` 成功
|
||
- 0 错误
|
||
- 0 警告
|
||
- 0 提示
|
||
- 所有页面正常生成
|
||
|
||
✅ **功能验证:**
|
||
- 标题块动画效果统一
|
||
- 进入动画流畅自然
|
||
- 移动端适配良好
|
||
|
||
## 文件修改列表
|
||
|
||
1. `/src/pages/report/index.astro` - ✅ 已修改
|
||
2. `/src/pages/report/20250609/index.astro` - ✅ 已修改
|
||
3. `/src/pages/report/20250722/index.astro` - ✅ 已符合规范
|
||
|
||
## 后续建议
|
||
|
||
1. **统一其他动画元素:** 考虑将其他页面中的自定义动画也统一使用 AnimatedElement
|
||
2. **动画时序优化:** 可以考虑为不同类型的内容设置递进的延迟时间
|
||
3. **响应式适配:** 确保动画在不同设备上的表现效果一致
|
||
|
||
---
|
||
|
||
*修改日期:2025年10月1日*
|
||
*状态:已完成* |