2023-07-22 09:57:23 +00:00
|
|
|
function execute_fireworks(firework) {
|
|
|
|
firework.firstElementChild.src = "/i/firework-trail.webp"
|
2022-07-16 21:00:02 +00:00
|
|
|
|
2023-07-22 09:57:23 +00:00
|
|
|
const xpos = Math.floor(Math.random() * 80) + 5
|
|
|
|
let ypos = 95
|
|
|
|
firework.style.top=ypos+"%"
|
|
|
|
firework.style.left=xpos+"%"
|
2022-07-16 21:00:02 +00:00
|
|
|
|
2023-07-22 09:57:23 +00:00
|
|
|
firework.style.display="inline-block"
|
|
|
|
const hue = Math.floor(Math.random()*360)+1
|
|
|
|
firework.style.filter="hue-rotate("+hue+"deg)"
|
|
|
|
|
|
|
|
let id = null
|
|
|
|
const height = Math.floor(Math.random()*60)+15
|
|
|
|
clearInterval(id);
|
|
|
|
id = setInterval(frame, 20);
|
2022-09-04 23:15:37 +00:00
|
|
|
|
2023-07-22 09:57:23 +00:00
|
|
|
const vnum = Math.floor(Math.random()*1000)
|
2022-09-04 23:15:37 +00:00
|
|
|
|
2023-07-22 09:57:23 +00:00
|
|
|
function frame() {
|
|
|
|
if (ypos <= height) {
|
2023-06-27 21:22:37 +00:00
|
|
|
clearInterval(id);
|
2023-07-22 09:57:23 +00:00
|
|
|
firework.firstElementChild.src = "/i/firework-explosion.webp?v="+vnum
|
|
|
|
} else {
|
|
|
|
ypos--;
|
|
|
|
firework.style.top=ypos+"%"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2022-09-04 23:15:37 +00:00
|
|
|
|
2023-07-22 09:57:23 +00:00
|
|
|
let counter = 0
|
2022-09-04 23:15:37 +00:00
|
|
|
|
2023-07-22 09:57:23 +00:00
|
|
|
for (let firework of document.getElementsByClassName("firework")){
|
|
|
|
const timeout = 2000 * counter
|
|
|
|
counter++
|
|
|
|
setTimeout(() => {
|
|
|
|
execute_fireworks(firework)
|
|
|
|
setInterval(execute_fireworks, 5000, firework)
|
2023-06-26 10:20:17 +00:00
|
|
|
}, timeout)
|
2022-12-04 15:40:32 +00:00
|
|
|
}
|