ASCII码 ASCII码

JavaScript实现飞舞的气泡效果实例

发布于:2022-05-25 14:40:54  栏目:技术文档

JavaScript实现飞舞的气泡效果

代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>飞舞的气泡</title>
  6. <style>
  7. #dv{
  8. width: 800px;
  9. height: 600px;
  10. background: #cccccc;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <input type="button" value="弹出球" id="btn">
  16. <div id="dv"></div>
  17. <script>
  18. var dv = document.getElementById('dv'); //返回对拥有指定id的第一个对象的引用
  19. var colors = ['red', 'yellow', 'blue', 'green', 'yellowgreen', '#ff00ff', '#ffdab9', '#00ffff']; //数组元素,各个颜色
  20. document.getElementById('btn').onclick = function (){
  21. var ball = document.createElement('div'); //方法通过指定名称创建一个元素
  22. ball.style.cssText = "position:absolute;border-radius:50%;box-shadow:0px 3px 5px #666;"; //设置HTML元素的style属性值
  23. //随机宽高
  24. var wh = Math.floor(Math.random() * 50) + 30; //返回的是0~50之间的整数+30
  25. ball.style.width = wh + 'px'; //width属性设置或返回元素的宽度
  26. ball.style.height = wh + 'px'; //height属性设置或返回元素的高度
  27. //随机背景颜色
  28. ball.style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];
  29. dv.appendChild(ball); //指定元素节点的最后一个子节点之后添加节点
  30. //设置位置居中
  31. var top = dv.clientHeight / 2 - ball.offsetHeight / 2;
  32. var left = dv.clientWidth / 2 - ball.offsetWidth / 2;
  33. ball.style.left = left + "px"; //left属性设置或返回定位元素的左部位置
  34. ball.style.top = top + "px"; //top属性设置或返回定位元素的顶部位置
  35. //返回的是0~10之间的整数+1
  36. var x = Math.floor(Math.random()*10) + 1;
  37. var y = Math.floor(Math.random()*10) + 1;
  38. //方法可按照指定的周期(以毫秒计)来调用函数或计算表达式
  39. setInterval(function (){
  40. left += x;
  41. top += y;
  42. if (left < dv.offsetLeft || left > (dv.offsetLeft + dv.offsetWidth - ball.offsetWidth)){
  43. x = -x;
  44. }
  45. if (top < dv.offsetTop || top > (dv.offsetTop + dv.offsetHeight - ball.offsetHeight - 3)){
  46. y = -y;
  47. }
  48. ball.style.left = left + "px"; //left属性设置或返回定位元素的左部位置
  49. ball.style.top = top + "px"; //top属性设置或返回定位元素的顶部位置
  50. }, 30)
  51. }
  52. </script>
  53. </body>
  54. </html>

运行结果如下:

相关推荐
阅读 +