国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS實現隨機亂撞彩色圓球特效的方法

2024-05-06 16:19:19
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了JS實現隨機亂撞彩色圓球特效的方法,可實現彩色小球的碰撞效果,涉及隨機函數與頁面樣式的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了JS實現隨機亂撞彩色圓球特效的方法。分享給大家供大家參考。具體實現方法如下:

 

 
  1. <!doctype html> 
  2. <html lang="en"
  3. <head> 
  4. <meta charset="UTF-8"
  5. <title>JS實現的隨機亂撞的彩色圓球特效代碼</title> 
  6. <style> 
  7. body{ 
  8. font-family: 微軟雅黑;  
  9. body,h1{ 
  10. margin:0; 
  11. canvas{ 
  12. display:block;margin-left: auto;margin-right: auto; 
  13. border:1px solid #DDD;  
  14. background: -webkit-linear-gradient(top, #222,#111); 
  15. }  
  16. </style> 
  17. </head> 
  18. <body> 
  19. <h1>JS實現的隨機亂撞的彩色圓球特效代碼</h1> 
  20. <canvas id="canvas" > 
  21. </canvas> 
  22. <button id="stop">stop</button> 
  23. <button id="run">run</button> 
  24. <button id="addBall">addBall</button> 
  25. <script src="jquery-1.6.2.min.js"></script> 
  26. <script> 
  27. var nimo={ 
  28. aniamted:null
  29. content:null
  30. data:{ 
  31. radiusRange:[5,20], 
  32. speedRange:[-5,5], 
  33. scrollHeight:null
  34. scrollWdith:null 
  35. }, 
  36. balls:[], 
  37. ele:{ 
  38. canvas:null 
  39. }, 
  40. fn:{ 
  41. creatRandom:function(startInt,endInt){//生產隨機數 
  42. var iResult;  
  43. iResult=startInt+(Math.floor(Math.random()*(endInt-startInt+1))); 
  44. return iResult 
  45. }, 
  46. init:function(){ 
  47. nimo.data.scrollWdith=document.body.scrollWidth; 
  48. nimo.data.scrollHeight=document.body.scrollHeight; 
  49. nimo.ele.canvas=document.getElementById('canvas');  
  50. nimo.content=nimo.ele.canvas.getContext('2d');  
  51. nimo.ele.canvas.width=nimo.data.scrollWdith-50; 
  52. nimo.ele.canvas.height=nimo.data.scrollHeight-100; 
  53. }, 
  54. addBall:function(){ 
  55. var aRandomColor=[]; 
  56. aRandomColor.push(nimo.fn.creatRandom(0,255)); 
  57. aRandomColor.push(nimo.fn.creatRandom(0,255)); 
  58. aRandomColor.push(nimo.fn.creatRandom(0,255));  
  59. var iRandomRadius=nimo.fn.creatRandom(nimo.data.radiusRange[0],nimo.data.radiusRange[1]); 
  60. var oTempBall={ 
  61. coordsX:nimo.fn.creatRandom(iRandomRadius,nimo.ele.canvas.width-iRandomRadius), 
  62. coordsY:nimo.fn.creatRandom(iRandomRadius,nimo.ele.canvas.height-iRandomRadius), 
  63. radius:iRandomRadius,  
  64. bgColor:'rgba('+aRandomColor[0]+','+aRandomColor[1]+','+aRandomColor[2]+',0.5)' 
  65. };  
  66. oTempBall.speedX=nimo.fn.creatRandom(nimo.data.speedRange[0],nimo.data.speedRange[1]); 
  67. if(oTempBall.speedX===0){ 
  68. oTempBall.speedX=1 
  69. if(oTempBall.speedY===0){ 
  70. oTempBall.speedY=1 
  71. oTempBall.speedY=nimo.fn.creatRandom(nimo.data.speedRange[0],nimo.data.speedRange[1]); 
  72. nimo.balls.push(oTempBall) 
  73. }, 
  74. drawBall:function(bStatic){  
  75. var i,iSize; 
  76. nimo.content.clearRect(0,0,nimo.ele.canvas.width,nimo.ele.canvas.height) 
  77. for(var i=0,iSize=nimo.balls.length;i<iSize;i++){ 
  78. var oTarger=nimo.balls[i];  
  79. nimo.content.beginPath(); 
  80. nimo.content.arc(oTarger.coordsX,oTarger.coordsY,oTarger.radius,0,10); 
  81. nimo.content.fillStyle=oTarger.bgColor;  
  82. nimo.content.fill(); 
  83. if(!bStatic){ 
  84. if(oTarger.coordsX+oTarger.radius>=nimo.ele.canvas.width){ 
  85. oTarger.speedX=-(Math.abs(oTarger.speedX)) 
  86. if(oTarger.coordsX-oTarger.radius<=0){ 
  87. oTarger.speedX=Math.abs(oTarger.speedX) 
  88. if(oTarger.coordsY-oTarger.radius<=0){ 
  89. oTarger.speedY=Math.abs(oTarger.speedY) 
  90. if(oTarger.coordsY+oTarger.radius>=nimo.ele.canvas.height){ 
  91. oTarger.speedY=-(Math.abs(oTarger.speedY)) 
  92. oTarger.coordsX=oTarger.coordsX+oTarger.speedX; 
  93. oTarger.coordsY=oTarger.coordsY+oTarger.speedY;  
  94. }  
  95. }, 
  96. run:function(){ 
  97. nimo.fn.drawBall(); 
  98. nimo.aniamted=setTimeout(function(){ 
  99. nimo.fn.drawBall(); 
  100. nimo.aniamted=setTimeout(arguments.callee,10) 
  101. },10) 
  102. }, 
  103. stop:function(){ 
  104. clearTimeout(nimo.aniamted) 
  105. window.onload=function(){ 
  106. nimo.fn.init(); 
  107. var i; 
  108. for(var i=0;i<10;i++){ 
  109. nimo.fn.addBall(); 
  110. nimo.fn.run(); 
  111. document.getElementById('stop').onclick=function(){ 
  112. nimo.fn.stop() 
  113. document.getElementById('run').onclick=function(){ 
  114. nimo.fn.stop() 
  115. nimo.fn.run() 
  116. document.getElementById('addBall').onclick=function(){ 
  117. var i; 
  118. for(var i=0;i<10;i++){ 
  119. nimo.fn.addBall();  
  120. nimo.fn.drawBall(true); 
  121. </script> 
  122. </body> 
  123. </html> 

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 青州市| 耒阳市| 新竹市| 安庆市| 桦川县| 东港市| 富裕县| 瑞昌市| 山阴县| 特克斯县| 左贡县| 安化县| 太仆寺旗| 泸西县| 仪征市| 湘潭市| 涟源市| 额敏县| 大名县| 固阳县| 来宾市| 平塘县| 绿春县| 五华县| 东乡县| 即墨市| 泗洪县| 民丰县| 平利县| 鄱阳县| 西乌珠穆沁旗| 敦化市| 东城区| 汉阴县| 朝阳市| 江口县| 嘉义县| SHOW| 堆龙德庆县| 手游| 大竹县|