欢迎来到代码驿站!

JavaScript代码

当前位置:首页 > 网页前端 > JavaScript代码

原生js实现弹动小球效果

时间:2023-01-28 10:34:10|栏目:JavaScript代码|点击:

本文实例为大家分享了JavaScript实现弹动小球效果展示的具体代码,供大家参考,具体内容如下

源码展示

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>弹弹球(原生js)</title>
 
<style>
* {
    margin:0;
    padding:0;
    font-family:Microsoft YaHei,serif;
}
li {
    list-style:none;
}
.ball {
    position:absolute;
    top:0;
    left:0;
    width:100px;
    height:100px;
    background:pink;
    border-radius:50%;
}
</style>
</head>
<body>
<div></div>
 
<script>
  play(10);
 
  function play(num) {
      //生成num个div
      for (var i = 0; i < num; i++) {
          var Div = document.createElement("div");
          Div.className = "ball";
          Div.leftVal = 3 + i; //预存每个球的初始速度
          Div.topVal = 3 + i; //预存每个球的初始速度
          Div.style.backgroundColor = randomC();
          document.body.appendChild(Div);
      }
 
      var aBall = document.querySelectorAll(".ball");
      maxTop = document.documentElement.clientHeight - aBall[0].clientHeight, //获取top的最大值
          maxLeft = document.documentElement.clientWidth - aBall[0].clientWidth; //获取left的最大值
 
      window.onresize = function() {
          maxTop = document.documentElement.clientHeight - aBall[0].clientHeight; //获取top的最大值
          maxLeft = document.documentElement.clientWidth - aBall[0].clientWidth; //
      };
 
      auto();
 
      function auto() {
          for (var i = 0; i < num; i++) {
              var Ball = aBall[i],
                  startL = Ball.offsetLeft, //取每个球的初始left和TOP值
                  startT = Ball.offsetTop, //取每个球的初始left和TOP值
                  Left = startL + Ball.leftVal, //改变,每个球的left和top值
                  Top = startT + Ball.topVal; //改变,每个球的left和top值
 
 
              if (Left >= maxLeft || Left <= 0) {
                  Left = Math.min(Left, maxLeft); //限制Left的最大值
                  Left = Math.max(Left, 0); //限制最小值
 
                  Ball.leftVal = -Ball.leftVal;
                  Ball.style.backgroundColor = randomC();
 
              }
              if (Top >= maxTop || Top <= 0) {
                  Ball.topVal = -Ball.topVal;
 
                  Top = Math.min(Top, maxTop); //限制Left的最大值
                  Top = Math.max(Top, 0); //限制最小值
                  Ball.style.backgroundColor = randomC();
              }
 
 
              Ball.style.top = Top + "px";
              Ball.style.left = Left + "px";
          }
          requestAnimationFrame(auto)
 
      }
      // rgb(0-255)
      function randomC() {
          var r = Math.floor(Math.random() * 256),
              g = Math.floor(Math.random() * 256),
              b = Math.floor(Math.random() * 256);
          return "rgb(" + r + "," + g + "," + b + ")";
      }
 
  }
</script>
 
</body>
</html>

上一篇:使用纯JS实现checkbox的框选效果(鼠标拖拽多选)

栏    目:JavaScript代码

下一篇:JS字符串补全方法padStart()和padEnd()

本文标题:原生js实现弹动小球效果

本文地址:http://www.codeinn.net/misctech/224595.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有