analasshby

Sparkles for mouse on tumblr

Apr 12th, 2014
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CSS 4.04 KB | None | 0 0
  1. <script type='text/javascript'>
  2. // <![CDATA[
  3. var colour="#B22222";
  4. var sparkles=50;
  5. var x=ox=400;
  6. var y=oy=300;
  7. var swide=800;
  8. var shigh=600;
  9. var sleft=sdown=0;
  10. var tiny=new Array();
  11. var star=new Array();
  12. var starv=new Array();
  13. var starx=new Array();
  14. var stary=new Array();
  15. var tinyx=new Array();
  16. var tinyy=new Array();
  17. var tinyv=new Array();
  18. window.onload=function() { if (document.getElementById) {
  19.   var i, rats, rlef, rdow;
  20.   for (var i=0; i<sparkles; i++) {
  21.     var rats=createDiv(3, 3);
  22.     rats.style.visibility="hidden";
  23.     document.body.appendChild(tiny[i]=rats);
  24.     starv[i]=0;
  25.     tinyv[i]=0;
  26.     var rats=createDiv(5, 5);
  27.     rats.style.backgroundColor="transparent";
  28.     rats.style.visibility="hidden";
  29.     var rlef=createDiv(1, 5);
  30.     var rdow=createDiv(5, 1);
  31.     rats.appendChild(rlef);
  32.     rats.appendChild(rdow);
  33.     rlef.style.top="2px";
  34.     rlef.style.left="0px";
  35.     rdow.style.top="0px";
  36.     rdow.style.left="2px";
  37.     document.body.appendChild(star[i]=rats);
  38.   }
  39.   set_width();
  40.   sparkle();
  41. }}
  42. function sparkle() {
  43.   var c;
  44.   if (x!=ox || y!=oy) {
  45.     ox=x;
  46.     oy=y;
  47.     for (c=0; c<sparkles; c++) if (!starv[c]) {
  48.       star[c].style.left=(starx[c]=x)+"px";
  49.       star[c].style.top=(stary[c]=y)+"px";
  50.       star[c].style.clip="rect(0px, 5px, 5px, 0px)";
  51.       star[c].style.visibility="visible";
  52.       starv[c]=50;
  53.       break;
  54.     }
  55.   }
  56.   for (c=0; c<sparkles; c++) {
  57.     if (starv[c]) update_star(c);
  58.     if (tinyv[c]) update_tiny(c);
  59.   }
  60.   setTimeout("sparkle()", 40);
  61. }
  62. function update_star(i) {
  63.   if (--starv[i]==25) star[i].style.clip="rect(1px, 4px, 4px, 1px)";
  64.   if (starv[i]) {
  65.     stary[i]+=1+Math.random()*3;
  66.     if (stary[i]<shigh+sdown) {
  67.       star[i].style.top=stary[i]+"px";
  68.       starx[i]+=(i%5-2)/5;
  69.       star[i].style.left=starx[i]+"px";
  70.     }
  71.     else {
  72.       star[i].style.visibility="hidden";
  73.       starv[i]=0;
  74.       return;
  75.     }
  76.   }
  77.   else {
  78.     tinyv[i]=50;
  79.     tiny[i].style.top=(tinyy[i]=stary[i])+"px";
  80.     tiny[i].style.left=(tinyx[i]=starx[i])+"px";
  81.     tiny[i].style.width="2px";
  82.     tiny[i].style.height="2px";
  83.     star[i].style.visibility="hidden";
  84.     tiny[i].style.visibility="visible"
  85.   }
  86. }
  87. function update_tiny(i) {
  88.   if (--tinyv[i]==25) {
  89.     tiny[i].style.width="1px";
  90.     tiny[i].style.height="1px";
  91.   }
  92.   if (tinyv[i]) {
  93.     tinyy[i]+=1+Math.random()*3;
  94.     if (tinyy[i]<shigh+sdown) {
  95.       tiny[i].style.top=tinyy[i]+"px";
  96.       tinyx[i]+=(i%5-2)/5;
  97.       tiny[i].style.left=tinyx[i]+"px";
  98.     }
  99.     else {
  100.       tiny[i].style.visibility="hidden";
  101.       tinyv[i]=0;
  102.       return;
  103.     }
  104.   }
  105.   else tiny[i].style.visibility="hidden";
  106. }
  107. document.onmousemove=mouse;
  108. function mouse(e) {
  109.   set_scroll();
  110.   y=(e)?e.pageY:event.y+sdown;
  111.   x=(e)?e.pageX:event.x+sleft;
  112. }
  113. function set_scroll() {
  114.   if (typeof(self.pageYOffset)=="number") {
  115.     sdown=self.pageYOffset;
  116.     sleft=self.pageXOffset;
  117.   }
  118.   else if (document.body.scrollTop || document.body.scrollLeft) {
  119.     sdown=document.body.scrollTop;
  120.     sleft=document.body.scrollLeft;
  121.   }
  122.   else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {
  123.     sleft=document.documentElement.scrollLeft;
  124.     sdown=document.documentElement.scrollTop;
  125.   }
  126.   else {
  127.     sdown=0;
  128.     sleft=0;
  129.   }
  130. }
  131. window.onresize=set_width;
  132. function set_width() {
  133.   if (typeof(self.innerWidth)=="number") {
  134.     swide=self.innerWidth;
  135.     shigh=self.innerHeight;
  136.   }
  137.   else if (document.documentElement && document.documentElement.clientWidth) {
  138.     swide=document.documentElement.clientWidth;
  139.     shigh=document.documentElement.clientHeight;
  140.   }
  141.   else if (document.body.clientWidth) {
  142.     swide=document.body.clientWidth;
  143.     shigh=document.body.clientHeight;
  144.   }
  145. }
  146. function createDiv(height, width) {
  147.   var div=document.createElement("div");
  148.   div.style.position="absolute";
  149.   div.style.height=height+"px";
  150.   div.style.width=width+"px";
  151.   div.style.overflow="hidden";
  152.   div.style.backgroundColor=colour;
  153.   return (div);
  154. }
  155. // ]]>
  156. </script>
Add Comment
Please, Sign In to add comment