如何使用純 JavaScript 新增淡入效果?
簡介
我們使用淡入效果來吸引使用者注意網站的某些部分,方法是逐漸增加或減少其不透明度。這種不透明度的逐漸變化稱為淡入或淡出效果。當我們逐漸增加不透明度時,它被稱為淡入效果,用於使頁面選定的部分在選定的時間內變得更清晰可見。這建立了一個平滑的過渡,並有助於使我們的網站對使用者而言更具活力和吸引力。
在本文中,我們將探討使用 HTML、CSS 和純 JavaScript 實現淡入效果的幾種方法。
方法
我們可以使用純 JavaScript 實現淡入效果的兩種主要方法是:
使用 clearInterval() 方法
使用 requestAnimationFrame() 函式
讓我們詳細瞭解每種方法。
方法 1:使用 clearInterval() 方法
clearInterval() 方法透過終止使用 setInterval() 設定的以特定間隔遞增不透明度的函式的執行來停止淡入動畫。
語法
clearInterval(intervalID);
讓我們看一個分步示例,以使用 clearInterval() 方法使用純 JavaScript 實現淡入動畫。
示例
步驟 1 - 如果要應用淡入動畫,則需要一個 HTML 元素。
<div id="elementId">Fade in element</div>
步驟 2 - 接下來,在 CSS 中,將元素的初始不透明度設定為 0,以便它最初不可見。讓我們也新增一些其他 CSS,使我們的元素更完善:
#elementId { width: 100px; height: 100px; background-color: gray; margin: 0 auto; display: flex; align-items: center; justify-content: center; font-size: 20px; color: black; opacity: 0; }
步驟 3 - 在您的 JavaScript 中,您將建立一個變數來儲存當前不透明度,然後使用 setInterval() 方法每 10 毫秒將不透明度遞增少量:
let element = document.getElementById("elementId"); let opacity = 0; let fadeIn = setInterval(() => { element.style.opacity = opacity; opacity += 0.01; }, 10);
步驟 4 - 然後,您可以使用if語句檢查不透明度是否已達到 1(最大值),此時您需要停止動畫:
if (opacity >= 1) { clearInterval(fadeIn); }
示例
步驟 5 - 最後,讓我們將所有內容整合在一起:
<!DOCTYPE html> <html> <head> <title>Fade in Animation</title> <style> #elementId { width: 100px; height: 100px; background-color: gray; margin: 0 auto; display: flex; align-items: center; justify-content: center; font-size: 20px; color: black; opacity: 0; } </style> </head> <body> <div id="elementId">Tutorials Point</div> <script> let element = document.getElementById("elementId"); let opacity = 0; let fadeIn = setInterval(() => { if (opacity >= 1) { clearInterval(fadeIn); } element.style.opacity = opacity; opacity += 0.01; }, 10); </script> </body> </html>
在此示例中,我們將 HTML、CSS 和 JavaScript 程式碼都放在一個名為 index.html 的檔案中。HTML 定義了要淡入的元素,CSS 定義了元素的可視屬性,而位於 script 標籤中的 JavaScript 程式碼使用 setInterval 和 clearInterval 方法使元素逐漸增加其不透明度,直到達到最大值。
當您在 Web 瀏覽器中開啟此 HTML 檔案時,它應該會淡入具有灰色背景顏色的元素,其中文字“Tutorials Point”居中且為黑色。
方法 2:使用 requestAnimationFrame() 函式
requestAnimationFrame() 函式允許瀏覽器在下次重繪之前呼叫指定函式來更新 JavaScript 中的淡入動畫,從而實現高效的動畫效能。
語法
requestAnimationFrame(fade);
讓我們看一個分步示例,以使用 requestAnimationFrame() 方法使用純 JavaScript 實現淡入動畫。
示例
步驟 1 - 如果要應用淡入動畫,則需要一個 HTML 元素:
<div id="elementId">Fade in element</div>
步驟 2 - 接下來,在 CSS 中,將元素的初始不透明度設定為 0,以便它最初不可見。讓我們也新增一些其他 CSS,使我們的元素更完善:
#elementId { opacity: 0; }
步驟 3 - 接下來,在您的 JavaScript 中,您將建立一個變數來儲存當前不透明度,然後使用 requestAnimationFrame() 函式在每次呼叫時將不透明度遞增少量:
let element = document.getElementById("elementId"); let opacity = 0; function fade() { opacity += 0.01; element.style.opacity = opacity; requestAnimationFrame(fade); } requestAnimationFrame(fade);
步驟 4 - 然後,您可以使用 if 語句檢查不透明度是否已達到 1(最大值),此時您需要透過中斷 requestAnimationFrame 呼叫的遞迴來停止動畫:
if (opacity >= 1) { return; }
示例
步驟 5 - 最後,讓我們將所有內容整合在一起:
<!DOCTYPE html> <html> <head> <title>Fade in Animation</title> <style> #elementId { width: 100px; height: 100px; background-color: grey; margin: 0 auto; display: flex; align-items: center; justify-content: center; font-size: 20px; color: black; opacity: 0; } </style> </head> <body> <div id="elementId">Tutorials Pointt</div> <script> let element = document.getElementById("elementId"); let opacity = 0; function fade() { if (opacity >= 1) { return; } opacity += 0.01; element.style.opacity = opacity; requestAnimationFrame(fade); } requestAnimationFrame(fade); </script> </body> </html>
您會發現 HTML、CSS 和 JavaScript 程式碼都組合在一個名為 index.html 的檔案中。在這裡,HTML 標識了要應用淡入效果的元素,CSS 設定了其可視屬性,script 標籤中的 JavaScript 使用 requestAnimationFrame 和遞迴來增加元素的不透明度,直到達到最大值。
當您在瀏覽器中開啟此 HTML 檔案時,它將顯示具有灰色背景的元素的淡入動畫,文字“Tutorials Point”位於中心且為黑色。
結論
在本文中,我們瞭解瞭如何使用純 JavaScript 實現淡入效果。淡入效果是一種逐漸增加網頁選定部分的不透明度的方法,使其對使用者更清晰可見。實現此效果的兩種主要方法是使用 clearInterval() 方法和 requestAnimationFrame() 函式。
我們詳細瞭解了每種方法,並提供瞭如何使用它們的逐步示例。這兩種方法都需要使用 HTML、CSS 和 JavaScript,並且可以根據您網站的特定需求進行自定義。有了這些知識,您現在就可以向您的網站新增淡入效果,並使其對使用者而言更具活力和吸引力。