Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var c=new AudioContext();
- var flaming = []
- var elements = document.querySelectorAll("p,h1,h2,h3,h4,h5,h6,a,img")
- for (var i=0;i<elements.length;i++) {
- elements[i].onclick = (e)=>{
- if (e.target.childNodes.length == 1){
- console.log("click")
- flaming.push(e.target)
- o=c.createOscillator();
- o.connect(c.destination);
- o.start();
- o.stop(c.currentTime+.05);
- }
- }
- }
- var parts = []
- function makePart(x,y) {
- var part = {}
- part.element = document.createElement("div")
- switch (Math.floor(randInt(0,3))) {
- case 0:
- part.element.style.backgroundColor = "red"
- break;
- case 1:
- part.element.style.backgroundColor = "orange"
- break;
- case 2:
- part.element.style.backgroundColor = "yellow"
- break;
- }
- var size = randInt(5,15)
- part.element.style.width = size + "px"
- part.element.style.height = size + "px"
- part.element.style.position = "fixed"
- part.element.style.left = x + "px"
- part.element.style.top = y + "px"
- part.element.style.zIndex = 1000
- part.element.style.opacity = 1
- part.x = x
- part.y = y
- part.startX = x
- document.body.appendChild(part.element);
- part.active = true
- parts.push(part)
- }
- function updateParts() {
- for (var i=0; i < parts.length; i ++) {
- var p = parts[i]
- if (p.active) {
- p.y -= 6
- p.element.style.top = p.y + "px"
- p.x = p.startX + Math.sin(p.y / 10) * 10
- p.element.style.left = p.x + "px"
- p.element.style.opacity -= 0.02
- if (p.element.style.opacity <= 0) {
- p.active = false
- }
- } else {
- p.element.remove()
- }
- }
- }
- setInterval(updateParts,32)
- setInterval(()=>{
- for (var i =0; i < flaming.length;i++) {
- var flame = flaming[i]
- var rect = flame.getBoundingClientRect();
- makePart(rect.left + flame.offsetWidth / 2 + randInt(-flame.offsetWidth/3,flame.offsetWidth/3),rect.top + flame.offsetHeight / 3 + randInt(-flame.offsetHeight/3,flame.offsetHeight/3))
- }
- },10 )
- function randInt(min,max)
- {
- return Math.random()*(max-min+1)+min;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement