以下是如何在 app/rd/page.tsx 中集成新的动画组件的示例:
```tsx import { AnimatedSection } from "@/components/animated-section" import { AnimatedCard } from "@/components/animated-card" ```
```tsx
```tsx
```tsx
```tsx
Our R&D Department is organized into three specialized research wings
你可以参考以下完整的文件结构:
``` app/ rd/ page.tsx # 主页(可以添加动画) loading.tsx # ✅ 新增 - 加载状态 error.tsx # ✅ 新增 - 错误边界 qdf/ page.tsx # QDF 页面 metadata.ts # ✅ 新增 - SEO metadata cds/ page.tsx # C&DS 页面 gt/ page.tsx # GT 页面
components/ animated-section.tsx # ✅ 新增 - 区域动画 animated-card.tsx # ✅ 新增 - 卡片动画 gradient-text.tsx # ✅ 更新 - 新配色 feature-card.tsx # ✅ 更新 - 新配色 navbar.tsx sticky-nav.tsx # ✅ 更新 - 修复定位 ...
hooks/ useInView.ts # ✅ 新增 - 视口检测
config/ site.ts # ✅ 新增 - 站点配置 ```
-
性能考虑:
- AnimatedCard 使用 `index * 0.1` 作为延迟,如果卡片超过 10 个,考虑调整延迟计算
- 对于超长列表,考虑使用虚拟滚动
-
用户体验:
- 所有动画默认只触发一次(`triggerOnce: true`)
- 如果需要重复触发,在 useInView 中设置 `triggerOnce: false`
-
无障碍访问:
- 动画默认遵循用户的 `prefers-reduced-motion` 设置
- Framer Motion 会自动处理这个问题
-
调试:
- 在开发环境中,可以在浏览器的 DevTools 中使用 "Emulate prefers-reduced-motion" 来测试无动画版本