如何使用 JavaScript 根據滑鼠位置更改背景顏色?


JavaScript 是一種著名的程式語言,是全球資訊網 (WWW) 的核心語言之一,與 HTML 和 CSS 並列。它允許程式設計師捕獲事件並修改文件物件模型 (DOM)。在本文中,我們將瞭解如何利用 JavaScript 根據滑鼠游標的位置更改背景顏色。

滑鼠移動事件

mousemove 是一個事件,當滑鼠游標移動且仍在相關元素內時,會在該元素上觸發。它提供有關游標點的偏移 x 和 y 座標的資訊。

語法

addEventListener(‘mousemove’, (event)=>{});

返回值:一個 MouseEvent 物件

演算法

我們將利用 mousemove 事件獲取滑鼠指標的位置,然後使用此資訊操作背景顏色。為了說明起見,我將把元素的背景顏色設定為顏色 RGB(x, y, x+y),其中 x 和 y 是滑鼠指標的座標。

示例

讓我們透過一個例子來理解這一點。

步驟 1:首先,我們將定義 HTML 程式碼。

<!DOCTYPE html>
<html>
<head>
   <title>How to change background color according to mouse location using JavaScript?</title>
</head>
<body>
   <h4>How to change background color according to mouse location using JavaScript?</h4>
   <div id="main"></div>
</body>
</html>

步驟 2:現在,我們將藉助 CSS 為網頁提供一些樣式。

<style>
   #main {
      width: 100%;
      height: 200px;
      background-size: cover;
      background-color: yellow;
   }
</style>

步驟 3:現在,我們將編寫使用 movemove 事件更改背景顏色的邏輯。

<script>
let div = document.getElementById("main");

div.addEventListener("mousemove", function(event) {
   let x = event.offsetX;
   let y = event.offsetY;
   div.style.backgroundColor = `rgb(${x%255}, ${y%255}, ${(x + y)%255})`;
});
</script>

這是完整的程式碼

<!DOCTYPE html>
<html>

<head>
   <title>How to change background color according to mouse location using JavaScript?</title>
   <style>
      #main {
         width: 100%;
         height: 200px;
         background-size: cover;
         background-color: yellow;
      }
   </style>
</head>

<body>
   <h4>How to change background color according to mouse location using JavaScript?</h4>
   <div id="main"></div>
   <script>
      let div = document.getElementById("main");

      div.addEventListener("mousemove", function (event) {
         let x = event.offsetX;
         let y = event.offsetY;
         div.style.backgroundColor = `rgb(${x%255}, ${y%255}, ${(x + y)%255})`;
      });
   </script>
</body>

</html>

結論

在本文中,藉助 JavaScript 滑鼠移動事件,我們能夠跟蹤滑鼠指標的移動。這使我們能夠透過每次觸發事件時更改 backgroundcolor 屬性來更改背景顏色。

更新於: 2023-09-12

1K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告