如何使用 CSS 自定義屬性來播放和暫停 CSS 動畫?
在 CSS 中,動畫是為網站新增視覺效果的有效方法。但是,有時我們希望能夠更好地控制這些動畫的播放時間和方式。在這裡,我們將探討如何使用 CSS 自定義屬性來播放和暫停 CSS 動畫。
在開始之前,我們應該知道 CSS 動畫可以透過關鍵幀或在兩種或多種狀態之間進行過渡來建立。
語法
@keyframes animation-name { /* define the animation steps */ }
我們透過為動畫命名並使用 @keyframes 關鍵字來定義動畫。在花括號內,我們使用百分比或關鍵字值定義動畫的步驟。
在 CSS 中播放和暫停動畫
在 CSS 中,播放和暫停動畫指的是控制動畫元素的能力。它是一種為網站新增運動和視覺趣味的方法。
播放和暫停動畫允許我們控制這些動畫的播放時間和方式。如果我們希望使用者能夠在需要專注時暫停動畫,這將非常有用。
在 CSS 中,我們可以使用 animation-play-state 屬性來控制動畫是正在執行還是暫停。預設情況下,animation-play-state 屬性設定為 running,這意味著動畫將在頁面載入時自動播放。但是,我們可以使用 CSS 隨時更改此屬性的值以啟動或停止動畫。
要使用 CSS 建立播放和暫停動畫效果,您可以按照以下步驟操作:
步驟 1:定義動畫
在第一步中,我們需要定義要控制的動畫。我們可以使用關鍵幀建立一個簡單的動畫。
步驟 2:建立播放和暫停效果
定義動畫後,我們需要建立控制動畫的元素。我們可以使用任何 HTML 元素,如按鈕、複選框和懸停效果。
步驟 3:定義 CSS 自定義屬性
現在,我們需要定義將儲存動畫狀態的 CSS 自定義屬性。我們可以為自定義屬性使用任何名稱,但在此示例中,我們將使用 --animation-play-state 和 --animation-timingfunction。
我們將透過示例來理解上述概念。
示例 1
以下是如何建立簡單的滑動動畫的示例。
<!DOCTYPE html> <html> <head> <style> body { text-align: center;} .box { display: flex; height: 80px; width: 80px; border-radius: 10%; color: white; background-color: green; position: relative; animation: my-animation 6s infinite; } .box:hover { animation-play-state: paused;} @keyframes my-animation { from {left: 0px;} to {left: 400px;} } </style> </head> <body> <h2>A simple animation of a slide</h2> <div class="box">Mouse Hove to give me a break.</div> </body> </html>
示例 2
這是另一個如何使用 CSS 自定義屬性來播放和暫停 CSS 動畫的示例。
<!DOCTYPE html> <html> <head> <style> body { text-align: center; } .box { align-items: center; background-color: green; display: flex; height: 80px; width: 80px; margin-top: 10px; border-radius: 10%; } .my-slide {--animdur: 5s; --animn: slide; } [my-animation] { animation: var(--animn, none) var(--animdur, 0s) var(--animtf, linear) var(--animic, infinite) var(--animdir, alternate) var(--animps, running); } [my-animation-pause]:checked~[my-animation] { --animps: paused; } @keyframes slide { from { margin-left: 0%;} to {margin-left: calc(100% - 80px);} } </style> </head> <body> <input type="checkbox" my-animation-pause id="move" class="#" /> <label for="move" class="#">Check Me to play/paus</label> <div class="box my-slide" my-animation="stop"></div> </body> </html>
結論
使用 CSS 自定義屬性來播放和暫停 CSS 動畫提供了一種簡單有效的方法來控制網頁上的動畫。在第一個示例中,我們使用關鍵幀動畫來定義動畫,並使用 animation-play-state 屬性來控制其狀態。在第二個示例中,我們使用過渡動畫並更改了自定義屬性的值來控制動畫的狀態。這兩種技術都提供了一種建立動態動畫的方法,這些動畫可以透過 CSS 輕鬆控制。