欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

飞舞的泡泡球

程序员文章站 2022-03-13 13:55:52
...

飞舞的泡泡球
效果图如下
飞舞的泡泡球

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. .container{
  8. width: 800px;
  9. height: 800px;
  10. background-color: #eee;
  11. margin: 60px auto;
  12. box-shadow: 5px 8px 2px #bdbdbd inset;
  13. border: 1px solid #666;
  14. position: relative;
  15. }
  16. .but{
  17. margin: 0px auto;
  18. width: 800px;
  19. }
  20. .ball{
  21. border-radius: 50%;
  22. /*background-color: rgb(157 110 233);*/
  23. position: absolute;
  24. }
  25. </style>
  26. </head>
  27. <body>
  28. <div class="container" id="cont">
  29. </div>
  30. <div class="but"><button id="btn" onclick="pball()">弹球</button></div>
  31. <script>
  32. var comobj=document.getElementById('cont');
  33. function pball(){
  34. var myWidth = Math.floor(Math.random()*30+10);
  35. var speY = Math.floor(Math.random()*10-6);
  36. var speX = Math.floor(Math.random()*10-6);
  37. var myball=document.createElement("div");
  38. var mycolorR = Math.floor(Math.random()*255);
  39. var mycolorB = Math.floor(Math.random()*255);
  40. var mycolorG = Math.floor(Math.random()*255);
  41. var contW = comobj.clientWidth;
  42. var contH = comobj.clientHeight;
  43. // console.log(mycolorR+','+mycolorG)
  44. myball.style.backgroundColor = `rgb(${mycolorR} ${mycolorB} ${mycolorG})`;
  45. myball.style.width = `${myWidth}px`;
  46. myball.style.height = `${myWidth}px`;
  47. // console.log(`rgb(${mycolorR} ${mycolorB} ${mycolorG})`);
  48. myball.className='ball';
  49. comobj.appendChild(myball);
  50. myball.style.top = `${contW/2}px`;
  51. myball.style.left =`${contH/2}px`;
  52. // console.log( `${comobj.clientWidth/2}px`)
  53. setInterval(function () {
  54. var oftop = myball.offsetTop;
  55. var ofleft= myball.offsetLeft;
  56. var myWid = myball.offsetWidth;
  57. var myhei = myball.offsetHeight;
  58. var tp= contH-myhei;
  59. var lp = contW-myWid;
  60. var opSy = 0;
  61. var lpSx = 0;
  62. opSy = oftop + speY;
  63. lpSx = ofleft + speX;
  64. if (opSy<=0)
  65. {
  66. myball.style.top='0px';
  67. speY = ~speY;
  68. } else if (opSy>=tp) {
  69. myball.style.top = `${tp}px`;
  70. speY = ~speY;
  71. }else {
  72. myball.style.top = `${opSy}px`;
  73. }
  74. if (lpSx<=0)
  75. {
  76. myball.style.left='0px';
  77. speX = ~speX;
  78. }else if (lpSx>=lp) {
  79. myball.style.left = `${lp}px`;
  80. speX = ~speX;
  81. }else {
  82. myball.style.left = `${lpSx}px`;
  83. }
  84. },50)
  85. }
  86. </script>
  87. </body>
  88. </html>