[ CSS 06 ] animation


Posted by tzutzu858 on 2021-05-19

animations

從 CSS3 開始可以做出基本的動畫了,CSS animations 在這動畫的運作上,只需要定義兩個部份:

  1. 動畫的最初及結尾
  2. 動畫轉變的方式。

Keyframes 關鍵影格

做動畫就一定要提到關鍵影格(英語:Key frame、Keyframe)是指在動畫和電影製作中繪製所有平滑變換中所必須定義的起點和終點。

關鍵影格選擇器的部分可使用:
1. from、to : 其實意思與 0% 和 100% 一樣。
2. 0-100% : 在時間的幾 % 時為何種 css 樣式。

@keyframes name {
  from { transform: translateX(0%); }
  to { transform: translateX(100%); }
}
@keyframes name {
  0% { top: 0; left: 0; }
  50% { top: 50px; }
  100% { top: 100px; left: 100%; }
}

sub-properties

子屬性 描述
animation-delay 定義元素讀取完畢到動畫開始的間隔時間
animation-direction 定義動畫播放完畢後將會反向播放
animation-duration 定義動畫完成一次週期的時間。
animation-iteration-count 定義動畫重複的次數。可以用 infinite 來讓動畫永遠重複播放。
animation-name 定義關鍵影格 @keyframes 的名字
animation-play-state 控制動畫的播放狀態。有 pauserunning 兩種值,後者為預設值
animation-timing-function 定義動畫轉變時時間的加速曲線 (例如 linear)
animation-fill-mode 定義元素在動畫播放外(動畫開始前及結束後)的狀態

實例 : 球往下掉

原本 animation 都可以加屬性 name幾秒infinitealternatecubic-bezier 這些等等去調整動畫。

See the Pen Animation by TzuTzu (@tzutzu858) on CodePen.



補充: -webkit- 前綴字

webkit 是一種用來讓網頁瀏覽器繪製網頁的排版引擎。它被用於 Safari。其分支 Blink 被用於基於 Chromium 的網頁瀏覽器,如 Opera 與 Chrome。
由於目前通用性的寫法在 Chrome 上還是不能用,所以在 CSS 裡要多複製一份 @keyframes 動畫與 animation 屬性,並在前面加上 -webkit- 前綴字。


有 animation 範例的文章 :

  1. 10 Amazing Examples of CSS, SVG & Canvas Masks In Action
  2. CSS 加載動畫:理查等等 animation 加上 mask 的應用

如果用 JavaScript 當然是可以做更複雜的動畫,有一些 library 可使用

  1. https://animejs.com/
  2. https://greensock.com/gsap/









Related Posts

每日心得筆記 2020-06-23(二)

每日心得筆記 2020-06-23(二)

MTR04_0813

MTR04_0813

MTR04_0727

MTR04_0727


Comments