daily pastebin goal
16%
SHARE
TWEET

Fire Script

a guest Dec 9th, 2017 74 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     var c=new AudioContext();
  2.             var flaming = []
  3.             var elements = document.querySelectorAll("p,h1,h2,h3,h4,h5,h6,a,img")
  4.             for (var i=0;i<elements.length;i++) {
  5.                 elements[i].onclick = (e)=>{
  6.                     if (e.target.childNodes.length == 1){
  7.                         console.log("click")
  8.                         flaming.push(e.target)
  9.                         o=c.createOscillator();
  10.                         o.connect(c.destination);
  11.                         o.start();
  12.                         o.stop(c.currentTime+.05);
  13.                     }
  14.                    
  15.                 }
  16.             }
  17.             var parts = []
  18.             function makePart(x,y) {
  19.                 var part = {}
  20.                 part.element = document.createElement("div")
  21.                 switch (Math.floor(randInt(0,3))) {
  22.                     case 0:
  23.                         part.element.style.backgroundColor = "red"
  24.                     break;
  25.                     case 1:
  26.                         part.element.style.backgroundColor = "orange"
  27.                     break;
  28.                     case 2:
  29.                         part.element.style.backgroundColor = "yellow"
  30.                     break;
  31.                 }
  32.                 var size = randInt(5,15)
  33.                 part.element.style.width = size + "px"
  34.                 part.element.style.height = size + "px"
  35.                 part.element.style.position = "fixed"
  36.                 part.element.style.left = x + "px"
  37.                 part.element.style.top = y + "px"
  38.                 part.element.style.zIndex = 1000
  39.                 part.element.style.opacity = 1
  40.  
  41.                 part.x = x
  42.                 part.y = y
  43.                 part.startX = x
  44.                 document.body.appendChild(part.element);
  45.                 part.active = true
  46.                 parts.push(part)
  47.             }
  48.             function updateParts() {
  49.                 for (var i=0; i < parts.length; i ++) {
  50.  
  51.                     var p = parts[i]
  52.                     if (p.active) {
  53.                         p.y -= 6
  54.                         p.element.style.top = p.y + "px"
  55.                         p.x = p.startX + Math.sin(p.y / 10) * 10
  56.                         p.element.style.left = p.x + "px"
  57.                         p.element.style.opacity -= 0.02
  58.                         if (p.element.style.opacity <= 0) {
  59.                             p.active = false
  60.                         }
  61.                     } else {
  62.                         p.element.remove()
  63.                     }
  64.                    
  65.                 }
  66.  
  67.             }
  68.             setInterval(updateParts,32)
  69.             setInterval(()=>{
  70.                 for (var i =0; i < flaming.length;i++) {
  71.                     var flame = flaming[i]
  72.                     var rect = flame.getBoundingClientRect();
  73.                     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))
  74.                 }
  75.             },10    )
  76.  
  77.             function randInt(min,max)
  78.             {
  79.                 return Math.random()*(max-min+1)+min;
  80.             }
RAW Paste Data
Top