如何在 HTML 中使用 clearRect 清空畫布?


我們將介紹在 HTML 文件中建立畫布元素、在 JavaScript 程式碼中選擇它以及使用 clearRect 方法清除整個畫布或其特定區域的過程。這是一種在 HTML 中建立動態和互動式圖形的有用技術,我們將引導使用者完成在您自己的專案中實現它所需的步驟。在本教程中,我們將討論如何在 HTML 中使用 clearRect 方法清除畫布。

使用 clearRect 清空畫布

使用者可以按照以下步驟使用 clearRect 清空畫布

步驟 1 − 首先,使用者需要在我們的 HTML 文件中建立一個畫布元素。這可以透過將以下程式碼新增到我們的 HTML 檔案的主體中來完成:

<canvas id="myCanvas"></canvas>

步驟 2 − 接下來,我們需要在 JavaScript 程式碼中選擇畫布元素,以便我們可以訪問其方法。這可以透過使用 getElementById() 方法來完成,如下所示:

let canvas = document.getElementById("myCanvas");

步驟 3 − 選擇畫布元素後,我們可以使用 getContext() 方法訪問畫布的 2D 渲染上下文。這是我們將用於在畫布上繪製和清除它的物件。

var ctx = canvas.getContext("2d");

步驟 4 − 現在我們有了畫布的 2D 渲染上下文,我們可以使用 clearRect() 方法來清除畫布。

ctx.clearRect(0, 0, canvas.width, canvas.height);

使用這行程式碼,我們有效地清除了整個畫布

此外,使用者還可以使用此方法透過提供要清除的區域的座標和尺寸來清除畫布的特定區域。

例如,如果使用者想要清除一個從點 (50, 50) 開始,寬度為 100,高度為 100 的矩形,我們將使用以下程式碼:

ctx.clearRect(50, 50, 100, 100);

示例 1

在這個例子中,我們使用 arc() 方法和 fill() 方法在畫布上繪製一個圓圈。然後我們使用了 requestAnimationFrame 方法並定義了一個 clearCircle() 函式,該函式將透過在每一幀中將半徑減少 5 個畫素來清除畫布的特定區域,然後使用新的半徑重新繪製圓圈。此動畫將產生收縮圓圈和清除畫布的效果。

<html>
<body>
   <h2>Clearing The Canvas with <I>clearRect</I></h2>
   <canvas id="myCanvas" ></canvas>
   <script>
      let canvas = document.getElementById("myCanvas");
      var ctx = canvas.getContext("2d");
      // Draw a circle on the canvas
      ctx.beginPath();
      ctx.arc(75, 75, 50, 0, 2 * Math.PI);
      ctx.fill();
      // Animate the clearing of a specific area of the canvas
      var x = 75;
      var y = 75;
      var radius = 50;
      function clearCircle() {
         ctx.clearRect(x - radius, y - radius, radius * 2, radius * 2);
         radius -= 5;
         ctx.beginPath();
         ctx.arc(x, y, radius, 0, 2 * Math.PI);
         ctx.fill();
         if (radius > 0) {
            requestAnimationFrame(clearCircle);
         }
      }
      requestAnimationFrame(clearCircle);
   </script>
</body>
</html>

示例 2

在下面的示例中,我們在按鈕元素上添加了一個事件監聽器,該監聽器偵聽點選事件,當點選按鈕時,它會呼叫回撥函式,該函式使用 clearRect() 方法透過提供要清除區域的左上角的座標以及區域的寬度和高度來清除畫布的特定區域。這樣,我們可以允許使用者透過與頁面互動來清除畫布的特定區域。

<html>
<body>
   <h2>Clearing The Canvas with <I>clearRect</I> using click event</h2>
   <canvas id="myCanvas" ></canvas>
   <button id="clearBtn">Clear</button>
   <script>
      let canvas = document.getElementById("myCanvas");
      let ctx = canvas.getContext("2d");
      let clearBtn = document.getElementById("clearBtn");
      // Draw some elements on the canvas
      ctx.fillRect(25, 25, 50, 50);
      ctx.fillRect(75, 75, 50, 50);
      // Clear a specific area of the canvas on button click
      clearBtn.addEventListener("click", function() {
         ctx.clearRect(50, 50, 25, 25);
      });
   </script>
</body>
</html>

我們學習瞭如何使用 clearRect 在 HTML 中清除畫布。此方法是一個快速簡單的過程,只需幾行程式碼即可完成。透過在 HTML 文件中建立畫布元素,在 JavaScript 程式碼中選擇它並使用 clearRect 方法,我們可以有效地清除整個畫布或其特定區域。

此方法是用於在 HTML 中建立動態和互動式圖形的強大工具。

更新於: 2023年2月16日

444 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告