Advertisement
Divposition

rainbow cursor test

Jul 2nd, 2015
614
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.31 KB | None | 0 0
  1. // <![CDATA[
  2. var colour="random"; // in addition to "random" can be set to any valid colour eg "#f0f" or "red"
  3. var sparkles=50;
  4.  
  5.  
  6.  
  7. /****************************
  8. * Tinkerbell Magic Sparkle *
  9. *(c)2005-11 mf2fm web-design*
  10. * http://www.mf2fm.com/rv *
  11. * DON'T EDIT BELOW THIS BOX *
  12. ****************************/
  13.  
  14. var x=ox=400;
  15. var y=oy=300;
  16. var swide=800;
  17. var shigh=600;
  18. var sleft=sdown=0;
  19. var tiny=new Array();
  20. var star=new Array();
  21. var starv=new Array();
  22. var starx=new Array();
  23. var stary=new Array();
  24. var tinyx=new Array();
  25. var tinyy=new Array();
  26. var tinyv=new Array();
  27.  
  28. window.onload=function() { if (document.getElementById) {
  29. var i, rats, rlef, rdow;
  30. for (var i=0; i<sparkles; i++) {
  31. var rats=createDiv(3, 3);
  32. rats.style.visibility="hidden";
  33. document.body.appendChild(tiny[i]=rats);
  34. starv[i]=0;
  35. tinyv[i]=0;
  36. var rats=createDiv(5, 5);
  37. rats.style.backgroundColor="transparent";
  38. rats.style.visibility="hidden";
  39. var rlef=createDiv(1, 5);
  40. var rdow=createDiv(5, 1);
  41. rats.appendChild(rlef);
  42. rats.appendChild(rdow);
  43. rlef.style.top="2px";
  44. rlef.style.left="0px";
  45. rdow.style.top="0px";
  46. rdow.style.left="2px";
  47. document.body.appendChild(star[i]=rats);
  48. }
  49.  
  50. set_width();
  51. sparkle();
  52. }}
  53.  
  54. function sparkle() {
  55. var c;
  56. if (x!=ox || y!=oy) {
  57. ox=x;
  58. oy=y;
  59. for (c=0; c<sparkles; c++) if (!starv[c]) {
  60. star[c].style.left=(starx[c]=x)+"px";
  61. star[c].style.top=(stary[c]=y)+"px";
  62. star[c].style.clip="rect(0px, 5px, 5px, 0px)";
  63. star[c].childNodes[0].style.backgroundColor=star[c].childNodes[1].style.backgroundColor=(colour=="random")?newColour():colour;
  64.  
  65. star[c].style.visibility="visible";
  66. starv[c]=50;
  67. break;
  68. }
  69. }
  70. for (c=0; c<sparkles; c++) {
  71. if (starv[c]) update_star(c);
  72. if (tinyv[c]) update_tiny(c);
  73. }
  74. setTimeout("sparkle()", 40);
  75. }
  76.  
  77.  
  78.  
  79. function update_star(i) {
  80. if (--starv[i]==25) star[i].style.clip="rect(1px, 4px, 4px, 1px)";
  81. if (starv[i]) {
  82. stary[i]+=1+Math.random()*3;
  83. if (stary[i]<shigh+sdown && starx[i]>0) {
  84. star[i].style.top=stary[i]+"px";
  85. starx[i]+=(i%5-2)/5;
  86. star[i].style.left=starx[i]+"px";
  87. }
  88. else {
  89. star[i].style.visibility="hidden";
  90. starv[i]=0;
  91. return;
  92. }
  93. }
  94.  
  95. else {
  96. tinyv[i]=50;
  97. tiny[i].style.top=(tinyy[i]=stary[i])+"px";
  98. tiny[i].style.left=(tinyx[i]=starx[i])+"px";
  99. tiny[i].style.width="2px";
  100. tiny[i].style.height="2px";
  101. tiny[i].style.backgroundColor=star[i].childNodes[0].style.backgroundColor;
  102. star[i].style.visibility="hidden";
  103. tiny[i].style.visibility="visible"
  104. }
  105. }
  106.  
  107. function update_tiny(i) {
  108. if (--tinyv[i]==25) {
  109. tiny[i].style.width="1px";
  110. tiny[i].style.height="1px";
  111. }
  112.  
  113. if (tinyv[i]) {
  114. tinyy[i]+=1+Math.random()*3;
  115. if (tinyy[i]<shigh+sdown && tinyx[i]>0) {
  116. tiny[i].style.top=tinyy[i]+"px";
  117. tinyx[i]+=(i%5-2)/5;
  118. tiny[i].style.left=tinyx[i]+"px";
  119. }
  120.  
  121. else {
  122. tiny[i].style.visibility="hidden";
  123. tinyv[i]=0;
  124. return;
  125. }
  126. }
  127. else tiny[i].style.visibility="hidden";
  128. }
  129.  
  130. document.onmousemove=mouse;
  131. function mouse(e) {
  132. set_scroll();
  133. y=(e)?e.pageY:event.y+sdown;
  134. x=(e)?e.pageX:event.x+sleft;
  135. }
  136.  
  137. function set_scroll() {
  138. if (typeof(self.pageYOffset)=="number") {
  139. sdown=self.pageYOffset;
  140. sleft=self.pageXOffset;
  141. }
  142. else if (document.body.scrollTop || document.body.scrollLeft) {
  143. sdown=document.body.scrollTop;
  144. sleft=document.body.scrollLeft;
  145. }
  146. else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {
  147. sleft=document.documentElement.scrollLeft;
  148. sdown=document.documentElement.scrollTop;
  149. }
  150. else {
  151. sdown=0;
  152. sleft=0;
  153. }
  154. }
  155.  
  156. window.onresize=set_width;
  157. function set_width() {
  158. if (typeof(self.innerWidth)=="number") {
  159. swide=self.innerWidth;
  160. shigh=self.innerHeight;
  161. }
  162.  
  163. else if (document.documentElement && document.documentElement.clientWidth) {
  164. swide=document.documentElement.clientWidth;
  165. shigh=document.documentElement.clientHeight;
  166. }
  167.  
  168. else if (document.body.clientWidth) {
  169. swide=document.body.clientWidth;
  170. shigh=document.body.clientHeight;
  171. }
  172. }
  173.  
  174. function createDiv(height, width) {
  175. var div=document.createElement("div");
  176. div.style.position="absolute";
  177. div.style.height=height+"px";
  178. div.style.width=width+"px";
  179. div.style.overflow="hidden";
  180. return (div);
  181. }
  182.  
  183. function newColour() {
  184. var c=new Array();
  185. c[0]=255;
  186. c[1]=Math.floor(Math.random()*256);
  187. c[2]=Math.floor(Math.random()*(256-c[1]/2));
  188. c.sort(function(){return (0.5 - Math.random());});
  189. return ("rgb("+c[0]+", "+c[1]+", "+c[2]+")");
  190. }
  191.  
  192. // ]]>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement