如何在滾動頁面時更改透明度?


在這篇文章中,我們將深入探討根據使用者滾動活動修改HTML元素透明度的方法。此技術可以為您的網站增添動態效果,並且只需少量JavaScript或jQuery和CSS即可輕鬆實現。完成本指南後,您將全面瞭解如何執行此效果,並掌握根據您的確切需求對其進行定製的技能。因此,讓我們深入瞭解一下,學習如何在滾動頁面時調整透明度!

方法

我們將瞭解在滾動頁面時更改透明度的不同方法。它們如下:

  • 使用JavaScript

  • 使用jQuery

方法1:使用JavaScript

我們將採用以下步驟在滾動過程中修改元素的透明度:

  • 定義要影響的元素 - 最初,我們將確定我們希望修改其透明度的HTML元件,併為其分配一個識別符號,以便在JavaScript中選擇它。

  • 設定元素樣式 - 我們將使用CSS來裝飾所述元素並固定其位置。這保證了在使用者滾動時,元素將保持其在顯示屏上的固定位置。

  • 新增事件監聽器 - 我們將繼續使用JavaScript將事件監聽器附加到視窗物件的“scroll”事件。之後,每次使用者滾動網頁時,該函式將被執行。

  • 計算當前滾動位置 - 在函式內部,我們將使用pageYOffset屬性或document.documentElement.scrollTop屬性來計算頁面的當前滾動位置。

  • 更新透明度 - 使用JavaScript,我們將根據當前滾動位置設定所選元素的style.opacity屬性。我們將使用一個簡單的公式來確定透明度,例如1 - scrollTop / 500

示例

以下程式碼塊構建一個網頁,其中包含一個標題部分,該部分在使用者向下滾動時會逐漸變得不透明。程式碼透過使用利用HTML、CSS和JavaScript的方法組合來實現此效果。標題部分固定在頁面頂部,背景顏色為黑色,文字顏色為白色。程式碼還包含一些文字內容,這些內容由幾個換行符隔開,以在每個內容塊之間建立較大的空白空間。

為了在滾動時更改標題區域的透明度,程式碼在JavaScript中使用滾動事件監聽器來監控使用者在網頁上的位置。當用戶向下滾動時,程式碼計算使用者滾動的程度並相應地修改標題的透明度。當用戶向下滾動網頁時,標題逐漸失去其不透明度,最終完全消失,從而產生視覺衝擊力,引導使用者關注網頁內容。

<!DOCTYPE html>
<html>
<head>
   <title>How to change opacity while scrolling the page?</title>
   <style>
      #content {
         position: fixed;
         top: 0;
         left: 0;
         right: 0;
         background-color: #000;
         color: #fff;
         padding: 10px;
      }
      h4 {
         margin-top: 100px;
      }
   </style>
</head>
<body>
   <div id="content">
      <p>Header content</p>
   </div>
   <h4>How to change opacity while scrolling the page?</h4>
   <p>Some content</p>
   <br />
   <br />
   <p>Some more content</p>
   <br />
   <br />
   <p>Some more content</p>
   <br />
   <br />
   <p>Some more content</p>
   <br />
   <br />
   <p>Some more content</p>
   <br />
   <br />
   <p>Some more content</p>
   <br />
   <br />
   <p>Some more content</p>
   <br />
   <br />
   <p>Some more content</p>
   <script>
      window.addEventListener("scroll", function () {
         let header = document.getElementById("content");
         let scrollTop = window.pageYOffset || document.documentElement.scrollTop;
         header.style.opacity = 1 - scrollTop / 500;
      });
   </script>
</body>
</html>

現在讓我們嘗試分解和理解這段程式碼。這段程式碼由三個部分組成

  • <body> 元素

  • <style> 元素

  • <script> 元素

方法2:使用jQuery

在jQuery中完成此任務的方法與我們在JavaScript方法中使用的方法相同。但是,我們將使用jQuery提供的方法和物件,例如$(window),$(window).scrollTop()來完成相同的工作。

示例

在下面的示例中,<body>程式碼設定了一個網站,該網站具有包含內容的標題和下面的一些附加內容。標題被賦予“content”的ID,並使用CSS進行樣式設定,背景為黑色,文字為白色。內容使用換行符進行排列,以便增加整個頁面的高度。

<script>程式碼建立了一個事件監聽器,用於監控使用者在頁面上的滾動位置。當用戶滾動時,使用jQuery庫更改標題的不透明度,隨著使用者向下移動頁面,不透明度逐漸降低。這產生了動態效果,標題隨著使用者滾動而變得越來越透明,為網站增添了響應能力。

最終結果是透過使用各種HTML、CSS和JavaScript方法實現的,包括使用標題的固定位置、指定標題的背景和文字顏色,以及制定滾動事件監聽器來跟蹤使用者在頁面上的位置。透過結合這些方法,指令碼構建了一個美觀且互動式的網站。

<!DOCTYPE html>
<html>
<head>
   <title>How to change opacity while scrolling the page?</title>
   <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
   <style>
      #content {
         position: fixed;
         top: 0;
         left: 0;
         right: 0;
         background-color: #000;
         color: #fff;
         padding: 10px;
      }
      h4 {
         margin-top: 100px;
      }
   </style>
</head>
<body>
   <div id="content">
   <p>Header content</p>
   </div>
   <h4>How to change opacity while scrolling the page?</h4>
   <p>Some content</p>
   <br />
   <br />
   <p>Some more content</p>
   <br />
   <br />
   <p>Some more content</p>
   <br />
   <br />
   <p>Some more content</p>
   <br />
   <br />
   <p>Some more content</p>
   <br />
   <br />
   <p>Some more content</p>
   <br />
   <br />
   <p>Some more content</p>
   <br />
   <br />
   <p>Some more content</p>
   <script>
      $(window).scroll(function () {
         let content = $("#content");
         let scrollTop = $(window).scrollTop();
         content.css("opacity", 1 - scrollTop / 500);
      });
   </script>
</body>
</html>

結論

總而言之,在向下滾動頁面時調整網頁元素的透明度級別是一種簡單而有效的方法,可以增強網站的動態效果。透過使用JavaScript或jQuery以及CSS,可以輕鬆設計一個根據當前滾動位置更改元素透明度的函式。無論您是想逐漸顯示標題還是輕輕調整頁面上其他元素的透明度,這種方法都是一種靈活的工具,可以為您的網站注入額外的互動維度。我相信本文已讓您全面瞭解如何在滾動時修改透明度,並且您將利用這些知識建立一些真正令人驚歎的網頁。

更新於:2023年3月28日

5000+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.