首页 > 语言 > JavaScript > 正文

JS实现模拟风力的雪花飘落效果

2024-05-06 16:20:03
字体:
来源:转载
供稿:网友

这篇文章主要介绍了JS实现模拟风力的雪花飘落效果,可在右侧填入风力值点击按钮即可看到伴随风力的雪花飘落效果,同时右侧有实时雪花数量统计功能,需要的朋友可以参考下

本文实例讲述了JS实现模拟风力的雪花飘落效果。分享给大家供大家参考。具体实现方法如下:

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  2. <html xmlns="http://www.w3.org/1999/xhtml"
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <title>雪花飘啊飘</title> 
  6. </head> 
  7. <style> 
  8. * {margin:0; padding:0; vertical-align:top;} 
  9. .xue{position:absolute;color:#fff;} 
  10. </style> 
  11. <body> 
  12. <div id="bbb" 
  13. style="position:absolute;top:0px;right:0px;width:400px;border:1px #000 solid;background:#fff;z-index:9;height:30px;"
  14. </div> 
  15. <div id="box" 
  16. style="height:600px;position:relative;border:1px red solid;background:#000;overflow:hidden;"
  17. </div> 
  18. <div  
  19. style="position:absolute;top:0px;right:400px;border:1px #000 solid;background:#fff;width:400px;height:30px;z-index:5;"
  20. <input id="wind_id" value="10" />级风 
  21. <input id="wind_button" type=button value="雪花飘啊飘飘啊飘" /> 
  22. </div> 
  23. <script> 
  24. var box = document.getElementById("box"); 
  25. var i= 0,c,d,wind_time; 
  26. var all = 0,other = 0,wind=0; 
  27. box.style.width = '1000px'
  28. document.getElementById("wind_button").onclick = function(){ 
  29. clearTimeout(wind_time);wind = 0; 
  30. wind = parseInt(document.getElementById("wind_id").value); 
  31. wind_run(wind); 
  32. function gogo(){ 
  33. var a = document.createElement("div"); 
  34. a.innerHTML = '.'
  35. a.id = "xue" + i; 
  36. a.className = "xue"
  37. a.style.top = parseInt(box.style.height) * (Math.random() > 0.3 ? Math.random() : 0) + 'px'
  38. if(wind != 0){var ss = Math.random() > Math.abs(wind*0.025) ? Math.random() : (wind > 0 ? 0 : 1) ;}else{var ss = Math.random()} 
  39. a.style.left = parseInt(box.style.width) * ss + 'px'
  40. box.appendChild(a); 
  41. godown(a.id,a.id,8*Math.random()); 
  42. i++; 
  43. all++; 
  44. var x = 100 * Math.random()* Math.random(); 
  45. setTimeout('gogo()',x); 
  46. }; 
  47. function removeElement(_element){//移除标签的函数 
  48. var _parentElement = _element.parentNode; 
  49. if(_parentElement){ 
  50. _parentElement.removeChild(_element); 
  51. }; 
  52. }; 
  53. function godown(a,e,speed){ 
  54. if(speed < 3){speed = 3} 
  55. var a1 =document.getElementById(a); 
  56. a1.style.top = parseInt(a1.style.top) + speed +'px'
  57. if(parseInt(a1.style.top) < parseInt(box.style.height)){e = setTimeout("godown(/""+a+"/",/""+e+"/","+speed+")",20)} 
  58. else
  59. clearTimeout(e); 
  60. removeElement(a1); 
  61. speed=null
  62. other++; 
  63. document.getElementById('bbb').innerHTML = "区域内还有"+(all-other)+"个雪花点." 
  64. }; 
  65. }; 
  66. function wind_run(wind){ 
  67. var a = document.getElementById("box").getElementsByTagName('div'); 
  68. for(var i = 0;i<a.length;i++){ 
  69. a[i].style.left = parseInt(a[i].style.left) + wind +'px'
  70. }; 
  71. if(Math.abs(wind) > 0.1){wind_time = setTimeout("wind_run("+wind+")",20)} 
  72. else{clearTimeout(wind_time);wind = 0;}; 
  73. }; 
  74. gogo(); 
  75. </script> 
  76. </body> 
  77. </html> 

希望本文所述对大家的javascript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选