如何使用HTML、CSS和JavaScript构建一个弹跳球

如何使用HTML、CSS和JavaScript构建一个弹跳球

在使用纯HTML、CSS和JavaScript设计网页时,程序员通常更喜欢开发高级CSS设计以使网站更具吸引力。使用关键帧和其他技术创建动画是如今最流行的技术之一。然而,我们也可以使用JavaScript代码创建动画,比如弹跳球效果。这种方法使我们对动画有更多的控制。

本文首先将解释如何使用HTML和CSS构建一个弹跳球。我们还将学习如何编写JavaScript代码来实现类似的动画。

使用关键帧创建弹跳球

使用纯HTML代码制作动画非常困难。相反,我们有CSS,它为我们提供了多种技术来执行不同的动画。在CSS中设计动画的最流行的方法是使用关键帧。

然而,要创建一个弹跳球,我们必须开发一个逻辑来实现它。

示例

<!DOCTYPE html>
<html lang="en">
<head>
<style>
   bouncing {
      display: flex;
      flex-direction: row;
      background-color: rgb(223, 210, 176);
      align-items: center;
      justify-content: center;
      height: 50vh;
   }
   .bouncing-ul {
      display: flex;
      flex-direction: row;
   }
   .bouncing-ul li {
      width: 40px;
      height: 40px;
      list-style: none;
      background-color: rgb(55, 17, 108);
      margin: auto 20px;
      border-radius: 50%;
      animation: bouncing 1s linear infinite alternate-reverse;
   }
   @keyframes bouncing {
      0% {
         transform: translateY(0);
      }
      50% {
         transform: translateY(-150px);
      }
      100% {
         transform: translateY(0);
      }
   }
</style>
</head>
<bouncing>
   <ul class="bouncing-ul">
      <li class="bouncing-li"></li>
   </ul>
</bouncing>
</html>
  • HTML代码使用CSS动画创建了一个弹跳球效果。创建了一个带有定义高度和背景颜色的块(彷徨类),其内容(一个无序列表彷徨-UL)在垂直和水平方向上居中对齐。球(彷徨LI类)作为一个列表项创建,具有定义的宽度、高度、背景颜色、边距和边界半径,使其呈圆形。

  • 动画使用@keyframes规则创建,该规则定义了CSS属性值随时间的变化。动画名为“彷徨”,持续时间为1秒,具有线性时间函数和无限的交替反向迭代次数。球在垂直方向上移动,从其原始位置(0%)移动到最高点(50%处的-150px),然后返回到其原始位置(100%)

如何使用JavaScript创建弹跳球效果

到目前为止,我们已经了解了如何仅使用HTML和CSS创建弹跳球效果。然而,有时我们可能希望使用编程语言如JavaScript来执行相同的任务,而不是使用标记语言。JavaScript可以访问浏览器的window对象。因此,很容易定义与CSS相似的规则,就像我们在CSS的情况下所做的那样。

示例

<!DOCTYPE html>
<html lang="en">
<head>
<style>
   .ball {
      position: absolute;
      width: 50px;
      height: 50px;
      border-radius: 25px;
      background-color: rgb(41, 66, 190);
   }
   body{
      display: flex;
      flex-direction: row;
      justify-content: center;
   }
</style>
</head>
<body>
<div class="ball"></div>
<script>
   const ball = document.querySelector('.ball');
   let y = 0;
   let direction = 1;
   let speed = 8;
   setInterval(() => {
      y = y + speed * direction;
      if (y >= window.innerHeight/3 - 50) {
         direction = -1;
      }
      if (y <= 0) {
         direction = 1;
      }
      ball.style.top = y + 'px';
   }, 20);
</script>
</body>

解释

  • 我们定义了一个名为ball的元素,我们使用CSS对其进行了自定义,使其呈现圆形。在script标签中,我们编写了包含动画逻辑的javascript代码。

  • 首先,我们选中了ball元素。接下来,我们定义了速度。在2秒内,球上下移动。当球到达某个方向的终点时,方向会改变。

结论

在本文中,我们学习了如何使用HTML、CSS和JavaScript创建弹跳球效果动画。我们看到了如何使用关键帧和CSS属性来执行任务。我们还看到了如何为单个和多个球创建弹跳球效果。我们建议读者尝试不同的方法来实现类似的效果。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程