Advertisement
dianakko

heart clicksplosion

Sep 9th, 2021
407
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.60 KB | None | 0 0
  1. <script type="text/javascript">
  2. // <![CDATA[
  3. var sparks = 12;
  4. // how many sparks per clicksplosion
  5. var speed = 33;
  6. // how fast - smaller is faster
  7. var bangs = 5;
  8. // how many can be launched simultaneously (note that using too many can slow the script down)
  9. var colours = new Array('#d6d6d6','#757575','#000000','#d6d6d6','#757575','#000000','#d6d6d6');
  10. // blue red green purple cyan orange pink
  11.  
  12. /****************************
  13. * Clicksplosion Effect *
  14. *(c)2012-3 mf2fm web-design *
  15. * http://www.mf2fm.com/rv *
  16. * DON'T EDIT BELOW THIS BOX *
  17. ****************************/
  18. var intensity = new Array();
  19. var Xpos = new Array();
  20. var Ypos = new Array();
  21. var dX = new Array();
  22. var dY = new Array();
  23. var stars = new Array();
  24. var decay = new Array();
  25. var timers = new Array();
  26. var swide = 800;
  27. var shigh = 600;
  28. var sleft = sdown = 0;
  29. var count = 0;
  30.  
  31. function addLoadEvent(funky) {
  32. var oldonload = window.onload;
  33. if (typeof (oldonload) != 'function')
  34. window.onload = funky;
  35. else
  36. window.onload = function() {
  37. if (oldonload)
  38. oldonload();
  39. funky();
  40. }
  41. }
  42.  
  43. addLoadEvent(clicksplode);
  44.  
  45. function clicksplode() {
  46. if (document.getElementById) {
  47. var i, j;
  48. window.onscroll = set_scroll;
  49. window.onresize = set_width;
  50. document.onclick = eksplode;
  51. set_width();
  52. set_scroll();
  53. for (i = 0; i < bangs; i++)
  54. for (j = sparks * i; j < sparks + sparks * i; j++) {
  55. stars[j] = createDiv('♡', 13);
  56. document.body.appendChild(stars[j]);
  57. }
  58. }
  59. }
  60.  
  61. function createDiv(char, size) {
  62. var div, sty;
  63. div = document.createElement('div');
  64. sty = div.style;
  65. sty.font = size + 'px monospace';
  66. sty.position = 'absolute';
  67. sty.backgroundColor = 'transparent';
  68. sty.visibility = 'hidden';
  69. sty.zIndex = '101';
  70. div.appendChild(document.createTextNode(char));
  71. return (div);
  72. }
  73.  
  74. function bang(N) {
  75. var i, Z, A = 0;
  76. for (i = sparks * N; i < sparks * (N + 1); i++) {
  77. if (decay[i]) {
  78. Z = stars[i].style;
  79. Xpos[i] += dX[i];
  80. Ypos[i] += (dY[i] += 1.25 / intensity[N]);
  81. if (Xpos[i] >= swide || Xpos[i] < 0 || Ypos[i] >= shigh + sdown || Ypos[i] < 0)
  82. decay[i] = 1;
  83. else {
  84. Z.left = Xpos[i] + 'px';
  85. Z.top = Ypos[i] + 'px';
  86. }
  87. if (decay[i] == 15)
  88. Z.fontSize = '7px';
  89. else if (decay[i] == 7)
  90. Z.fontSize = '2px';
  91. else if (decay[i] == 1)
  92. Z.visibility = 'hidden';
  93. decay[i]--;
  94. } else
  95. A++;
  96. }
  97. if (A != sparks)
  98. timers[N] = setTimeout('bang(' + N + ')', speed);
  99. }
  100.  
  101. function eksplode(e) {
  102. var x, y, i, M, Z, N;
  103. set_scroll();
  104. y = (e) ? e.pageY : event.y + sdown;
  105. x = (e) ? e.pageX : event.x + sleft;
  106. N = ++count % bangs;
  107. M = Math.floor(Math.random() * 3 * colours.length);
  108. intensity[N] = 5 + Math.random() * 4;
  109. for (i = N * sparks; i < (N + 1) * sparks; i++) {
  110. Xpos[i] = x;
  111. Ypos[i] = y - 5;
  112. dY[i] = (Math.random() - 0.5) * intensity[N];
  113. dX[i] = (Math.random() - 0.5) * (intensity[N] - Math.abs(dY[i])) * 1.25;
  114. decay[i] = 16 + Math.floor(Math.random() * 16);
  115. Z = stars[i].style;
  116. if (M < colours.length)
  117. Z.color = colours[i % 2 ? count % colours.length : M];
  118. else if (M < 2 * colours.length)
  119. Z.color = colours[count % colours.length];
  120. else
  121. Z.color = colours[i % colours.length];
  122. Z.fontSize = '13px';
  123. Z.visibility = 'visible';
  124. }
  125. clearTimeout(timers[N]);
  126. bang(N);
  127. }
  128.  
  129. function set_width() {
  130. var sw_min = 999999;
  131. var sh_min = 999999;
  132. if (document.documentElement && document.documentElement.clientWidth) {
  133. if (document.documentElement.clientWidth > 0)
  134. sw_min = document.documentElement.clientWidth;
  135. if (document.documentElement.clientHeight > 0)
  136. sh_min = document.documentElement.clientHeight;
  137. }
  138. if (typeof (self.innerWidth) == 'number' && self.innerWidth) {
  139. if (self.innerWidth > 0 && self.innerWidth < sw_min)
  140. sw_min = self.innerWidth;
  141. if (self.innerHeight > 0 && self.innerHeight < sh_min)
  142. sh_min = self.innerHeight;
  143. }
  144. if (document.body.clientWidth) {
  145. if (document.body.clientWidth > 0 && document.body.clientWidth < sw_min)
  146. sw_min = document.body.clientWidth;
  147. if (document.body.clientHeight > 0 && document.body.clientHeight < sh_min)
  148. sh_min = document.body.clientHeight;
  149. }
  150. if (sw_min == 999999 || sh_min == 999999) {
  151. sw_min = 800;
  152. sh_min = 600;
  153. }
  154. swide = sw_min - 7;
  155. shigh = sh_min - 7;
  156. }
  157.  
  158. function set_scroll() {
  159. if (typeof (self.pageYOffset) == 'number') {
  160. sdown = self.pageYOffset;
  161. sleft = self.pageXOffset;
  162. } else if (document.body && (document.body.scrollTop || document.body.scrollLeft)) {
  163. sdown = document.body.scrollTop;
  164. sleft = document.body.scrollLeft;
  165. } else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {
  166. sleft = document.documentElement.scrollLeft;
  167. sdown = document.documentElement.scrollTop;
  168. } else {
  169. sdown = 0;
  170. sleft = 0;
  171. }
  172. }
  173. // ]]>
  174. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement