2024年6月18日 4 分鐘閱讀

透過JavaScript掌控CSS動畫:實用技巧分享

在網頁動畫開發中,開發者需要根據動畫需求,權衡選擇CSS或JavaScript這兩種技術,以達到最佳的呈現效果與性能。

透過JavaScript掌控CSS動畫:實用技巧分享 - 九博体育tianjunhua

網頁設計師有時認為CSS動畫比JavaScript動畫更難掌握。儘管CSS動畫存在一些限制,但大多數情況下,它的能力遠超我們的想像,並且通常能提供更優異的性能表現。

結合少量的JavaScript,CSS動畫和過渡效果能夠更有效率地實現硬體加速的動畫和互動,表現優於大多數JavaScript函式庫。讓我們直接進入主題!

立即深入探索!

精準操控CSS過渡效果

在編碼論壇上,關於觸發和暫停元素過渡效果的問題層出不窮。實際上,使用JavaScript解決這個問題非常簡單。

要觸發元素的過渡效果,只需在該元素上切換一個能啟動過渡的CSS類別名稱即可。

若要暫停元素的過渡效果,可以在您希望暫停的精確時間點,使用getComputedStyle和getPropertyValue取得當前的計算樣式。然後,將這些CSS屬性值設定回該元素,即可實現暫停。

利用CSS「回呼函式」強化互動

一些最實用卻鮮為人知的JavaScript技巧,用於操控CSS過渡和動畫,就是它們所觸發的DOM事件。例如:動畫的animationend、animationstart和animationiteration事件,以及過渡的transitionend事件。您或許能猜到它們的作用。這些動畫事件分別在元素的動畫結束、開始或完成一次迭代時觸發。

目前這些事件仍需加上供應商前綴。在本範例中,我們使用Craig Buckler開發的PrefixedEvent函式,它包含element、type和callback三個參數,有助於實現這些事件的跨瀏覽器相容性。這裡有他關於使用JavaScript捕捉CSS動畫的實用文章。還有另一篇關於判斷事件是為哪個動畫(名稱)觸發的文章。

深入解析CSS過渡控制

正如我們剛才所學,我們可以監聽元素並對動畫相關事件做出反應:animationStart、animationIteration和animationEnd。但如果您想在動畫進行中改變CSS動畫,該怎麼辦?這需要一些巧妙的技巧!

動畫播放狀態屬性:animation-play-state

CSS的animation-play-state屬性在您需要簡單地暫停動畫並可能稍後繼續時非常有用。您可以透過JavaScript更改該CSS(請注意您的前綴):

元素.樣式.webkit動畫播放狀態 = 「暫停」;

元素.樣式.webkit動畫播放狀態 = 「運行中」;

如何取得動畫關鍵影格的百分比進度

九博体育tianjunhua专注九博体育平台,为用户提供专业可靠的体验。最有效率的近似方法是使用setInterval函式來實現。围绕九博体育登录入口,九博体育tianjunhua持续打磨更优质的服务。

變數顯示百分比 = 視窗.設定間隔(函式() {

  如果 (當前百分比 < 100) {

    當前百分比 += 1;

  } 否則 {

    當前百分比 = 0;

  }

  // Updates a div that displays the current percent

  結果.內部HTML = 當前百分比;

}, 40);

策略性思考,優化動畫流程

在開始編碼之前,思考並規劃過渡或動畫的運行方式,是最大程度減少問題並獲得所需效果的最佳方法。這甚至比之後再上網搜尋解決方案更好!本文概述的技巧和竅門可能並非總是創建專案所需動畫的最佳方式。

這裡有一個小例子,說明如何僅憑藉HTML和CSS的巧妙運用,就能解決您原本可能認為需要JavaScript才能處理的問題。

結論:掌握動態網頁的關鍵

  • 過去,開發者常需在CSS與JavaScript之間做出抉擇。
  • 在JavaScript中,CSS過渡通常比CSS動畫更容易操作和管理。
  • CSS矩陣對於初學者而言,處理起來通常相當複雜且困難。
  • 思考應完成的工作內容,並規劃如何有效執行。