如何使用 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.