JavaScript 实现小球碰壁反弹动画

作者:竹影时间:2026-10-30 13:06:29浏览:592

本文介绍如何使用JavaScript结合CSS实现小球在容器内的碰壁反弹动画。通过movex和movey变量控制运动方向,利用定时器更新元素位置,并在边界处反转坐标实现反弹逻辑。

JavaScript 实现小球碰壁反弹动画

本文通过一个具体的实例,展示如何利用JavaScript代码实现小球在容器内碰壁反弹的动画效果。详细的实现逻辑请参考下方的代码部分。

HTML结构与CSS样式


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>碰撞小球</title>
 <style>
 #box{
  width: 1000px;
  height: 800px;
  position: relative;
  border:1px solid red;
  margin:50px auto 0;
 }
 #boll{
  width: 50px;
  height: 50px;
/*  border-radius: 25px;*/
  border:1px solid green;
  position: absolute;
  top: 66px;
  left: 88px;
 }
 </style>
</head>
<body>
 <div id="box">
  <div id="boll"></div>
 </div>
 <script>
  var box=document.getElementById('box');
  var boll=document.getElementById('boll');
  var x=88,y=66,timer1=null,movex=1,movey=1;
  console.log(box.clientWidth-boll.clientWidth);
  console.log(box.clientWidth-boll.offsetWidth);
   timer1=setInterval(function(){
    if (movex) {//判断方向
     x++;
     if (x>=box.clientWidth-boll.clientWidth) {
      movex=0;
     }boll.style.left=x+'px';}
     else{
      x--;
      if (x<=0) {
       movex=1;
      }boll.style.left=x+'px';
     }
    if (movey) {
     y++;
     
     if (y>=box.clientHeight-boll.clientHeight) {
      movey=0;
     }boll.style.top=y+'px';
    }else{
      y--;
      if (y<=0) {
       movey=1;
      }boll.style.top=y+'px';
     }
   },1)
 </script>
</body>
</html> 

运动方向控制逻辑

在运动逻辑中,movex和movey这两个变量用于判断小球当前的运动方向。

以上就是本文的全部内容,希望能为读者的学习提供有益的帮助,同时也欢迎大家继续支持本站。

作者最新文章