用途
like-burst 为点赞、收藏、赞同或表情表态按钮添加一次庆祝式的粒子爆发效果,是一段“挣来的”微小正向反馈时刻。它是 motion-anything 的一部分,并遵循 MOTION-SPEC.md。
何时使用
- 点赞、收藏、赞同、表态类按钮。
- 需要一次小而克制的正向反馈时刻。
何时不应使用(克制原则)
- 破坏性或中性操作(删除、忽略、关闭)。
- 同一屏幕可能同时触发多个爆发时——每个屏幕只保留一个庆祝时刻。
- 页面加载或自动播放时。该效果必须由用户触发。
如何使用
- 将 like-burst.css 和 like-burst.js 复制到项目中。
- 引入它们,并标记按钮:
<link rel="stylesheet" href="like-burst.css" /> <button class="like-btn" data-like-burst aria-pressed="false" aria-label="Like">♥</button> <script src="like-burst.js"></script>
它会自动绑定到所有带有 [data-like-burst] 的元素,也可以手动调用 attachLikeBurst(el)。
调参
- like-burst.js 中的 PARTICLE_COUNT / COLORS(粒子数量保持适度——品味优先于炫技)。
- 弹出手感:lb-pop 关键帧(当前 420ms,ease-out)。
- 爆发扩散:spawnParticles 中的 dist。
无障碍与性能
- 遵循 prefers-reduced-motion:粒子被抑制,仅保留安静的颜色或缩放提示。
- 仅对 transform/opacity 做动画;约 700ms 后移除注入的粒子节点。
框架说明
- React:在 useEffect 中调用 attachLikeBurst(ref.current);或将点击处理逻辑移植进组件,并保持 CSS 不变。