iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 25
1
自我挑戰組

一步一腳印,探索網頁前端設計之美系列 第 25

第二十五步 - 過去與未來的未來關鍵(CSS 動畫部分)

  • 分享至 

  • xImage
  •  

大家早安,我是喵橘,今天要報告的 CSS 動畫部分,今天也請各位多多指教喔~

動畫關鍵影格設定

動畫的呈現就是由一個一個的關鍵影格所組合而成,所以,在設定動畫之前,要先把需要變化的關鍵影格設定完成,才能呈現不同變化的美。以下是關鍵影格的公式:

https://ithelp.ithome.com.tw/upload/images/20190926/20117282Egn9hbfyy6.png

動畫效果的設定

動畫效果有許多設定的方法,如下表所顯示:

設定值 說明
animation-name 設定動畫名稱。
animation-timing-function 設定動畫轉換方式。
animation-direction 設定動畫播放方向。
animation-duration 設定動畫時間。
animation-iteration-count 設定動畫重複次數。
animation-delay 設定動畫延遲時間。
animation-play-state 設定動畫播放情況。

動畫影格設定注意事項

  1. 若沒有設定好開頭結尾,系統也能自動演算出來。
  2. 不可以獨自使用純數字,一定要加入百分比符號。
  3. 如果有相同百分比數字,後面撰寫的設定會覆蓋前面撰寫的設定。

<animation-name> 屬性

要製作動畫的第一步,就要先取要使用的動畫名稱,假如此功能沒設定,動畫名稱則會呈現 none

<animation-timing-function> 屬性

設定動畫轉換所需要的速度,從開始到結束都是以平滑轉換呈現。設定值如下表所顯示:

設定值 說明
ease 預設值。平滑開始到結束。
liner 保持平均開始到結束。
ease-in 開始由慢到結束最快。
ease-out 開始由快到結束最慢。
ease-in-out 開始由慢到中間快到結束慢。

<animation-direction> 屬性

設定動畫單次播放所需要的時間,單位為秒(s),預設值為 0。

設定值 說明
normal 預設值。開始播放到最後。
reverse 反向播放,最後到開始。
alternate 開始播放到最後,再由最後播放到開始。
alternate-reverse 最後播放到開始,再由開始播放到最後。

<animation-delay> 屬性

設定動畫開始前所要等待的時間,單位為秒(s),預設值為 0。

CSS

@keyframes orange {

	from { background-color: orange; }
	to   { background-color: green; }

}

div {
	text-align: center;
}
.box1 {
	width: 100px;
	height: 100px;
	background-color: lightblue;
	position: absolute;
	animation-name: orange;
	animation-timing-function: ease-in;
	animation-duration: 5s;
	animation-delay: 3s;
}


HTML

	<div class="box1">我是變化箱子</div>



範例圖示:

https://ithelp.ithome.com.tw/upload/images/20190926/20117282RoPvrm0ZBp.png

<animation-iteration-count> 屬性

設定動畫播放的次數,預設為 1 ,假如設定 infinite 則會無限循環輪播。

<animation-direction> 屬性

設定動畫播放的方向。

<animation-play-state> 屬性

設定動畫播放情況,預設值為 播放中(英語:running)

CSS

@keyframes orange {
	from { left: 10px; }
	to   { left: 250px; }
}

div {
	text-align: center;
}
.box1 {
	width: 100px;
	height: 100px;
	background-color: lightblue;
	position: absolute;
	animation-name: orange;
	animation-timing-function: ease-in;
	animation-duration: 5s;
	animation-direction: alternate-reverse;
	animation-iteration-count: infinite;
}
.box1:hover {
	animation-play-state: paused;
}


HTML

	<div class="box1">我是變化箱子</div>



範例圖示:

https://ithelp.ithome.com.tw/upload/images/20190926/201172826gSJ7KGMDJ.png

< animation > 快速寫法

假如熟悉 CSS 語法,就是要優化程式碼,這一個方法是最推薦也是對網頁執行效率最好的方法。

CSS

/*animation: 動畫名稱 動畫時間 動畫轉換方式 動畫轉換延遲時間 動畫重複次數 動畫播放方向 播放狀況*/
@keyframes orange {

	from { width: 0; }
	to   { width: 100%; }

}
.loadbar {
	background-color: orange;
	height: 5px;
	animation: orange 5s infinite ease-out;
}



HTML

	<div class="loadbar"></div>



範例圖示:

https://ithelp.ithome.com.tw/upload/images/20190926/20117282AJA7wX0IVr.png

明天預告


今天是講解 CSS 動畫設定,明天是 CSS 總整理部分,非常感恩大家觀看。


上一篇
第二十四步 - 變形的未知走道(CSS 變形設定)
下一篇
第二十六步 - 最後破關的條件(CSS總整理)
系列文
一步一腳印,探索網頁前端設計之美33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言