出单礼花
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/deal-confetti-burst。
技能介绍
问题所在
在交易、签约或回款确认等关键业务节点,一个「成功」的视觉反馈能显著提升用户信心。然而,很多开发者在实现庆祝动效时,习惯性地引入全屏遮罩层(overlay)或 el-dialog 全屏 loading 来承载礼花,这就立刻破坏了点击穿透(click-through)能力。结果是:动画播放时,按钮、表单、弹窗被冻结,用户误以为页面卡死。
如何工作
本技能只做一件事:在成交成功的瞬间,用 canvas-confetti 播放一束肉眼可见的礼花,且绝不拦截任何鼠标与页面操作。其核心步骤包括:
- 依赖接入:引入
canvas-confetti,默认由库自建 canvas 并设为不接收指针。 - 非阻挡画布:显式保证
pointer-events: none,禁止使用全屏 div 或遮罩,禁止在 canvas 上绑定 click。 - 礼花发射:在成功回调中调用
confetti(),建议particleCount >= 80,持续 1–3s;追求仪式感可用短连发,同样保持 click-through。 - 挂载时机:仅在业务成功路径(成交、回款确认、合同签署成功)触发;失败或取消时不播放,也不改变任何业务提示。
适用边界与避坑
该技能适用于任何需要「有动效,但不影响点击」的正向业务瞬间。但必须严格规避以下反模式:
- 全屏遮罩:用全屏 div 盖住页面再放礼花,会直接挡掉点击。
- 事件吞没:canvas 未设
pointer-events: none,或创建 z-index 极高且可点的自定义层,会误吞业务事件。 - 无限循环:在
setInterval里无限放礼花,导致性能下降与用户干扰。 - 失败也庆祝:在失败或取消路径放礼花,会误导用户。
此外,系统开启「减少动态效果」(prefers-reduced-motion: reduce)时应跳过粒子动画,仅保留 Toast 文案。动画结束后,若自建 canvas,建议移除节点,避免残留占位。验收时务必手工验证:礼花播放中点击按钮/输入框仍有响应,开发者工具中 canvas 的 pointer-events 为 none。
使用场景
- 在订单支付成功回调中触发礼花,确保礼花播放时「确认收货」按钮仍可点击
- 合同电子签完成瞬间播放礼花,同时弹窗中的下一步操作按钮保持可交互
- 回款确认后在报表页顶部放礼花,不遮挡下方数据表格的滚动与单元格点击
- 用户明确要求「成交要有动效但别挡住我点别的」时实现纯视觉庆祝层
适合人员
- 电商前端工程师,需要在支付成功页做庆祝动效且不能冻结结算表单
- SaaS 产品经理,想在合同签署成功时给反馈但拒绝牺牲下一步操作的流畅性
- 负责回款确认页的开发者,要加入庆祝元素同时保证表格与按钮全程可点
- 追求细节体验的全栈,希望用最小依赖实现不抢焦点的成功提示