自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

巧妙使用 CSS 控制動畫行進

開發(fā) 前端
今天要介紹一種很簡單的使用 CSS 控制動畫播放與暫停的小技巧。使用好了,可以在很多實際場景得以運用。

[[398687]]

正文從這里開始。

今天要介紹一種很簡單的使用 CSS 控制動畫播放與暫停的小技巧。使用好了,可以在很多實際場景得以運用。

我們先來看個例子,本例子是我在閑逛 Codepen 時看到了,很有意思:

圖片

本例子 CodePen Demo -- CSS Beer![1]

上面整個過程都是由 CSS 完成。拋開如何用 CSS 實現上述一些 UI 效果。本文主要講的是如何只用 CSS 控制一次動畫的行進,暫停與開始。

拆解分析需求

上述動畫控制要完成的效果是:

  • 頁面 render 后,無任何操作,動畫不會開始。只有當鼠標對元素進行 click ,觸發(fā)元素的 :active 偽類效果的時候,動畫才開始進行;
  • 動畫進行到任意時刻,鼠標停止點擊,則動畫停止;
  • 重新對元素進行點擊,動畫繼續(xù)從上一幀結束的狀態(tài)開始
  • 如果動畫播放完,再點擊不會重復播放,動畫狀態(tài)保留在動畫的最后一幀

解決需求

看著好像挺復雜的,其實實現起來很容易,主要借助了偽類 :active 與動畫的播放狀態(tài) animation-play-state 。

我們以一個運動的小球做一個簡單的示例,小球從左運動到右。

  1. <div></div> 

 

  1. div { 
  2.     margin: 50px auto; 
  3.     width: 100px; 
  4.     height: 100px; 
  5.     background: #000; 
  6.     animation: move 1s linear; 
  7.     animation-fill-mode: forwards; 
  8.  
  9. @keyframes move { 
  10.     100% { 
  11.         transform: translate(200px, 0) rotate(180deg); 
  12.     } 

 

圖片

 

接下來,我們就進行簡單的改造,動畫的默認狀態(tài)是暫停的:

 

  1. div { 
  2.     margin: 50px auto; 
  3.     width: 100px; 
  4.     height: 100px; 
  5.     background: #000; 
  6.     animation: move 1s linear; 
  7.     animation-fill-mode: forwards; 
  8. +   animation-play-state: paused; 

只有通過點擊的時候,動畫才會運行:

 

  1. body:active div { 
  2.     animation-play-state: running; 

看看效果,為了方便看清點擊的過程,在點擊的過程中,我也改了下背景顏色(背景變色表示當前鼠標按下):

圖片

CodePen Demo -- CSS控制動畫行進[2]

總結一下

嗯,整個過程其實非常簡單。理解了這種方法后,就可以隨意加到你想的任何動畫中,再拋一個類似的 Demo:

 

圖片

CodePen Demo -- CSS 控制動畫行進[3]

非常有用的一個小技巧,趕緊 GET 起來。

最后

好了,本文到此結束,希望對你有幫助 :)

更多精彩 CSS 技術文章匯總在我的 Github -- iCSS[4] ,持續(xù)更新,歡迎點個 star 訂閱收藏。

如果還有什么疑問或者建議,可以多多交流,原創(chuàng)文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

參考資料

[1]本例子 CodePen Demo -- CSS Beer!:

https://codepen.io/mikegolus/pen/jJzRwJ

[2]CodePen Demo -- CSS控制動畫行進:

https://codepen.io/Chokcoco/pen/XGvwjL

[3]CodePen Demo -- CSS 控制動畫行進:

https://codepen.io/Chokcoco/pen/ZPgxwy[4]Github -- iCSS: https://github.com/chokcoco/iCSS

 

責任編輯:姜華 來源: iCSS前端趣聞
相關推薦

2009-12-25 10:11:46

WPF后臺控制動畫

2023-06-05 09:28:32

CSS漸變

2010-08-23 10:30:05

CSS超鏈接

2021-05-18 06:22:39

CSS 制作波浪技巧

2021-09-08 22:28:13

前端Css3動畫

2022-08-11 09:30:52

transitionCSS

2021-04-16 05:54:05

CSS 文字動畫技巧

2009-03-17 09:37:00

ADSL分流寬帶接入

2009-07-10 11:24:43

交換機配置控制

2022-11-23 08:17:18

CSS動畫貝塞爾

2021-02-09 07:26:38

前端css技術熱點

2023-12-29 08:53:31

動畫AI

2022-03-28 08:44:15

css3水波動畫

2022-07-21 07:05:13

粒子動畫CSS

2010-09-02 15:48:47

CSSvisibility屬

2014-08-08 16:17:49

shell腳本linux

2022-09-12 08:31:41

CSS3偽類URI

2022-04-11 11:07:37

HarmonyUI小型系統(tǒng)textarea

2009-10-28 12:28:52

VB.NET資源使用

2017-04-27 14:05:59

CSS動畫前端
點贊
收藏

51CTO技術棧公眾號