logo
0
0
WeChat Login

看见 - 眼眸·心动

一个基于 Next.js 的浪漫动画网页,通过线稿美瞳眼睛和名字粒子系统呈现"看见"主题。

看见 Next.js React TypeScript

✨ 项目特色

🎨 视觉效果

  • 线稿美瞳风格眼睛:精细的线条设计,呈现写实而唯美的眼睛
  • 177个名字粒子系统:每个名字独立动画,从瞳孔飞出
  • 红心艺术呈现:前面金色系 + 后面红色系,层次分明
  • 艺术字漂浮字幕:"你在我眼里,更在我心里"动态展示

🎬 动画流程

  1. 0-3秒:眼睛静止,主题"看见"淡入
  2. 3-4秒:瞳孔放大,准备释放
  3. 4秒起:名字逐个从瞳孔飞出
    • 飞出间隔:300ms
    • 特写展示:1000ms
    • 前40个:金色系(显眼)
    • 后137个:红色系(层次)
  4. 约4分47秒后:所有名字定位成红心
  5. 最终状态:红心 + 艺术字 + 背景音乐

🎵 背景音乐

  • 音乐:《送你一朵小红花》
  • 播放方式:自动循环播放
  • 控制:左下角播放/暂停按钮
  • 文件位置assets/送你一朵小红花.mp3

🚀 快速开始

环境要求

  • Node.js: 24.x
  • pnpm: >= 9.0.0

安装依赖

pnpm install

本地开发

pnpm dev

访问 http://localhost:5000

构建

pnpm build

📦 部署到 EdgeOne

方式一:一键部署脚本(推荐)

# 运行部署准备脚本 ./scripts/edgeone-deploy.sh # 上传到 EdgeOne 控制台 # 或使用 coscli coscli upload out/ cos://your-bucket/ -r

方式二:手动部署

# 1. 构建 pnpm build # 2. 上传 out/ 目录到 EdgeOne # 通过控制台拖拽上传 # 或使用 coscli 上传 # 3. 验证 curl -I https://your-domain.cloud.tencent.com/

详细部署文档

查看完整的 EdgeOne 部署手册:

cat EDGEONE_DEPLOYMENT.md

查看快速参考卡:

cat EDGEONE_QUICK_REFERENCE.md

📁 项目结构

├── src/ │ ├── app/ │ │ ├── layout.tsx # 布局组件 │ │ └── page.tsx # 首页 │ ├── components/ │ │ └── EyeHeartAnimation.tsx # 核心动画组件 │ └── data/ │ └── 177names.txt # 名字数据 ├── public/ │ └── assets/ │ └── 送你一朵小红花.mp3 # 背景音乐 ├── scripts/ │ ├── edgeone-deploy.sh # EdgeOne 部署脚本 │ ├── build.sh # 构建脚本 │ ├── dev.sh # 开发脚本 │ └── start.sh # 启动脚本 ├── next.config.ts # Next.js 配置 ├── package.json # 项目配置 ├── tsconfig.json # TypeScript 配置 ├── .coze # Coze 配置 ├── EDGEONE_DEPLOYMENT.md # EdgeOne 部署手册 ├── EDGEONE_QUICK_REFERENCE.md # 快速参考卡 ├── MUSIC_SETUP.md # 音乐设置说明 └── README.md # 本文件

🎯 核心功能

Canvas 动画系统

  • 实时渲染:使用 Canvas API 实现流畅的 60fps 动画
  • 粒子系统:177个独立的名字粒子
  • 光效系统:金色/红色发光效果,增强视觉冲击力

名字动画阶段

  1. Emerging:从瞳孔内部飞出,向外扩散
  2. Featured:特写展示,放大到屏幕50%
  3. Reverting:缩小并飞向心形位置
  4. Positioned:定位在心形上,呼吸效果

颜色策略

  • 前面名字(0-39):金色系,非常显眼
  • 后面名字(40-176):红色系,层次渐变
    • 中心:鲜红色
    • 中间:红色
    • 边缘:深红色

🛠️ 技术栈

  • 框架:Next.js 16 (App Router)
  • UI 库:React 19
  • 语言:TypeScript 5
  • 样式:Tailwind CSS 4
  • 组件:Radix UI
  • 动画:Canvas API + CSS Animation
  • 构建:Next.js 内置构建系统

🔧 配置说明

Next.js 配置

next.config.ts 已配置为静态导出:

export default { output: 'export', // 静态导出 images: { unoptimized: true, // 禁用图片优化 }, };

音乐文件配置

音乐文件路径在 src/components/EyeHeartAnimation.tsx 中:

<audio ref={audioRef} loop> <source src="/assets/送你一朵小红花.mp3" type="audio/mpeg" /> </audio>

如需更换音乐,修改此路径即可。

📊 性能指标

  • Lighthouse Performance: > 90
  • 动画帧率: 60fps
  • 首次加载: < 2s
  • 总动画时长: 约4分47秒

🐛 常见问题

音乐无法播放

# 检查音乐文件 ls -la public/assets/送你一朵小红花.mp3 # 检查浏览器控制台是否有错误 # 某些浏览器可能需要用户交互才能播放

构建失败

# 清理缓存 rm -rf .next node_modules out pnpm install pnpm build

部署后页面空白

# 1. 检查 _next/static/ 目录是否上传 # 2. 检查浏览器控制台错误 # 3. 清除浏览器缓存

更多问题解决方案,查看 EdgeOne 部署手册

📝 更新日志

v1.0.0 (2025-01-23)

  • ✅ 实现线稿美瞳风格眼睛
  • ✅ 实现177个名字粒子系统
  • ✅ 实现红心艺术呈现
  • ✅ 添加背景音乐自动播放
  • ✅ 添加艺术字漂浮字幕
  • ✅ 优化动画时长匹配音乐
  • ✅ 优化前面名字颜色更明显
  • ✅ 完成 EdgeOne 部署配置

📄 许可证

MIT License

🙏 致谢

  • 设计灵感:眼眸与心的连接
  • 音乐:《送你一朵小红花》
  • 技术支持:Next.js、React、Tailwind CSS

📞 联系方式

  • 文档:查看 EDGEONE_DEPLOYMENT.md
  • 问题反馈:提交 Issue
  • 技术支持:腾讯云 EdgeOne

看见 - 你在我眼里,更在我心里 ❤️

Made with ❤️ using Next.js

About

No description, topics, or website provided.
Language
TypeScript93%
Shell2.7%
CSS1.9%
JavaScript1.9%
Others0.5%