MarseyWorld/files/assets/js/fireworks.js

41 lines
999 B
JavaScript
Raw Normal View History

2023-07-22 09:57:23 +00:00
function execute_fireworks(firework) {
2023-09-26 20:09:34 +00:00
firework.firstElementChild.src = `${SITE_FULL_IMAGES}/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) {
clearInterval(id);
2023-09-26 20:09:34 +00:00
firework.firstElementChild.src = `${SITE_FULL_IMAGES}/i/firework-explosion.webp?v=${vnum}`
2023-07-22 09:57:23 +00:00
} 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
}