成功撒花特效
基础效果:
前端安装并引入canvas-confetti包
如有问题请使用满血版DeepSeek/国内直连GPT/Claude解答
1.安装
npm install --save canvas-confetti
2.在前端代码中引用
import confetti from 'canvas-confetti';
2.在前端代码中使用
把下面这个直接放到你的函数里面,调用即可,调用时机由自己控制,比如成功状态或者其他时机
confetti({
particleCount: 100,
spread: 70,
origin: { y: 0.6 }
});
以上是基础撒花效果
3.更多示例
3.1随机方向撒花
代码配置如下:
function randomInRange(min, max) {
return Math.random() * (max - min) + min;
}
confetti({
angle: randomInRange(55, 125),
spread: randomInRange(50, 70),
particleCount: randomInRange(50, 100),
origin: { y: 0.6 }
});
3.2更多粒子下/更真实特效
var count = 200;
var defaults = {
origin: { y: 0.7 }
};
function fire(particleRatio, opts) {
confetti({
...defaults,
...opts,
particleCount: Math.floor(count * particleRatio)
});
}
fire(0.25, {
spread: 26,
startVelocity: 55,
});
fire(0.2, {
spread: 60,
});
fire(0.35, {
spread: 100,
decay: 0.91,
scalar: 0.8
});
fire(0.1, {
spread: 120,
startVelocity: 25,
decay: 0.92,
scalar: 1.2
});
fire(0.1, {
spread: 120,
startVelocity: 45,
});
3.3 星光特效
var defaults = {
spread: 360,
ticks: 50,
gravity: 0,
decay: 0.94,
startVelocity: 30,
colors: ['FFE400', 'FFBD00', 'E89400', 'FFCA6C', 'FDFFB8']
};
function shoot() {
confetti({
...defaults,
particleCount: 40,
scalar: 1.2,
shapes: ['star']
});
confetti({
...defaults,
particleCount: 10,
scalar: 0.75,
shapes: ['circle']
});
}
setTimeout(shoot, 0);
setTimeout(shoot, 100);
setTimeout(shoot, 200);