Canvas 与 Web Audio API 实现交互式烟花动画
这是一个基于 Canvas 和 Web Audio API 的交互式烟花动画项目。核心思路是利用双层画布渲染拖尾效果,配合实时合成的音效增强沉浸感。
整体架构
系统主要由 HTML 结构、CSS 样式和 JavaScript 逻辑三部分组成。逻辑层包含音效模块、状态管理和粒子系统。
┌─────────────────────────────────────────────────────────────┐
│ HTML 结构 │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ SVG 图标 │ │ Canvas 容器 │ │ 控制面板/菜单 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ CSS 样式 │
├─────────────────────────────────────────────────────────────┤
│ JavaScript 逻辑 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
│ │ FireworkSound│ │ Store │ │ Shell/Star/Spark │ │
│ │ 音效模块 │ │ 状态管理 │ │ 粒子系统 │ │
│ └──────────────┘ └──────────────┘ └──────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
HTML 结构部分
1. 头部元信息
<meta charset="UTF-8">
<title>Fireworks Demo</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover">
这里设置了 UTF-8 编码,标题改为通用名称。viewport-fit=cover 用于适配 iPhone X 系列刘海屏,同时禁用用户缩放防止误操作。
2. iOS PWA 支持
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" =>


