如何使用 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 动画创建弹跳球效果。创建一个具有定义高度和背景颜色的块(弹跳类)。其内容(无序列表 bouncing-ul)在垂直和水平方向上居中对齐。球(bouncing-li 类)被创建为列表项,具有定义的宽度、高度、背景颜色、边距和圆角,使其成为圆形。

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

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

到目前为止,我们已经了解了如何仅使用 HTML 和 CSS 创建弹跳球效果。但是,有时我们可能希望使用 JavaScript 等编程语言而不是标记语言来执行相同的任务。JavaScript 可以访问浏览器的窗口对象。因此,很容易定义与我们在 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 属性来执行任务。我们了解了如何为单个和多个球创建弹跳球效果。我们建议读者尝试不同的方法来获得类似的输出。

更新于: 2023 年 3 月 13 日

2K+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.