mirror of
https://github.com/sim1222/misskey.git
synced 2025-08-03 23:16:28 +09:00
enhance(client): アップデート時にも花火
This commit is contained in:
25
packages/frontend/src/scripts/confetti.ts
Normal file
25
packages/frontend/src/scripts/confetti.ts
Normal file
@ -0,0 +1,25 @@
|
||||
import _confetti from 'canvas-confetti';
|
||||
import * as os from '@/os';
|
||||
|
||||
export function confetti() {
|
||||
const duration = 1000 * 5;
|
||||
const animationEnd = Date.now() + duration;
|
||||
const defaults = { startVelocity: 30, spread: 360, ticks: 60, zIndex: os.claimZIndex('high') };
|
||||
|
||||
function randomInRange(min, max) {
|
||||
return Math.random() * (max - min) + min;
|
||||
}
|
||||
|
||||
const interval = setInterval(() => {
|
||||
const timeLeft = animationEnd - Date.now();
|
||||
|
||||
if (timeLeft <= 0) {
|
||||
return clearInterval(interval);
|
||||
}
|
||||
|
||||
const particleCount = 50 * (timeLeft / duration);
|
||||
// since particles fall down, start a bit higher than random
|
||||
_confetti(Object.assign({}, defaults, { particleCount, origin: { x: randomInRange(0.1, 0.3), y: Math.random() - 0.2 } }));
|
||||
_confetti(Object.assign({}, defaults, { particleCount, origin: { x: randomInRange(0.7, 0.9), y: Math.random() - 0.2 } }));
|
||||
}, 250);
|
||||
}
|
Reference in New Issue
Block a user