Files
ChowBox/doc/box.md
王鹏 802b4ba229 fix: 修复 VoiceController Map.of 兼容性 + ExploreController 参数不匹配
- VoiceController: Map.of() -> Collections.singletonMap() 兼容 Java 8
- ExploreController: 补齐 takeoutService.roll() 缺失的 taste/priceRange/allergies 参数

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 20:02:27 +08:00

4.2 KiB
Raw Permalink Blame History

以下是“吃啥盲盒”开盒动效的详细分镜描述覆盖从点击到展示结果的完整过程可直接交付UI动效设计师和前端开发。


开盒动效分镜 · 吃啥盲盒

整体时长约1.8-2.2秒
触发动作:用户点击任一模式入口按钮(外卖盒/冰箱盒/附近盒)
核心情感曲线:期待→悬念→惊喜→清晰
实现方式建议优先使用Lottie + CSS关键帧动画兼容低端机型可降级为CSS动画序列


第一幕 · 震动蓄力0ms 400ms

目标:传达“盒子里有东西在动”,制造期待。

时间 元素 变化描述 缓动
0ms 点击的按钮/卡片 轻微缩放scale 1.0 → 1.05 → 1.0 ease-out
0ms 整个盲盒入口 出现一圈橙色光晕从中心向外扩散后消失 ease-out, opacity 1→0
100ms 盲盒图标(如🎁 开始高频微动:左右摇摆 ±3deg频率先快后慢 ease-in-out
0-400ms 屏幕背景(盲盒大厅) 逐渐变暗至亮度0.6,其余元素后退感 线性

配套反馈:手机轻微震动(调用wx.vibrateShort 15ms


第二幕 · 盒盖开启400ms 1000ms

目标:视觉上呈现“盒子被打开”的结构变化。

时间 元素 变化描述 缓动
400ms 盲盒容器(方形盒子) 盒盖部分分离向上位移动画Y轴偏移 -60rpx同时opacity 1→0 ease-in
450ms 盒体内部 从缝隙中透出金色光芒,逐渐增强 ease-out
500ms 盒体本身 向下轻微压缩scaleY 1→0.9→1模拟受力反弹 ease-out
600ms 金色光芒 蔓延至整个屏幕形成短暂的白屏过渡白色遮罩从中心放射opacity 0→0.8→0 ease-in-out持续400ms
700ms 结果承载层(卡片/空状态) 在光芒最亮时完成挂载,但此时仍被白色遮罩覆盖 -

配套反馈第二次短震10ms强化“打开了”的触感。


第三幕 · 展示与定型1000ms 1800ms

目标:结果内容华丽登场,信息清晰呈现。

时间 元素 变化描述 缓动
1000ms 白色遮罩 开始淡出opacity 0.8→0持续300ms ease-in
1000ms 结果卡片(外卖/菜谱/店铺) 从缩放0.85、Y轴+30rpx开始弹出 ease-out-back弹性动画
1100ms 卡片内商家图片 单独从模糊blur 8px变清晰0px持续200ms ease-out
1200ms 标题文字(“你抽到的外卖是…”) 逐字或整行从上方飘入opacity 0→1Y -20→0 ease-out
1300ms 评分/距离等次要信息 阶梯式出现每组延迟50ms ease-out
1500ms 底部操作按钮 从下方滑入Y +40→0opacity 0→1 ease-out
1600ms 彩带动效(可选) 短暂彩色纸屑从卡片背后喷射3-5片 物理抛物线,随机旋转

配套反馈:手机长震一次(wx.vibrateLong)或播放轻快“叮”音效(需音频资源)


各模式动效差异点

模式 第二幕盒内光芒颜色 第二幕溅射粒子 第四幕彩带
外卖盲盒 橙色→暖黄 迷你外卖车图标飘出 外卖袋emoji纸屑
冰箱盲盒 绿色→浅绿 蔬菜粒子(🥬🍅 餐具emoji纸屑
探店盲盒 紫色→粉金 地图标记气泡冒起 星星emoji纸屑

降级策略(性能受限时)

  • 移除粒子与彩带,仅保留盒盖位移+光芒过渡+卡片弹性动画。
  • 所有动画时长缩短至1.2秒弹性缓动改为普通ease-out。
  • 关闭震动序列通过API判断手机性能或用户设置

开发关键参数

  • Lottie JSON 尺寸控制在80KB以内帧率30fps。
  • CSS 动画:使用transformopacity开启GPU加速will-change)。
  • 遮罩过渡:使用page-mask绝对定位覆盖z-index分层。
  • 依赖资源:音频文件(.mp3, 5KB以内震动序列图片预加载结果卡片图提前加载