1. 程式人生 > 其它 >動畫 animation 關鍵幀 的總結(上)

動畫 animation 關鍵幀 的總結(上)

動畫 animation 關鍵幀 的總結(上):

animation動畫提供幾個屬性如下:

描述

animation-name

規定需要繫結到選擇器的 keyframe 名稱。。

animation-duration

規定完成動畫所花費的時間,以秒或毫秒計。

animation-timing-function

規定動畫的速度曲線。

animation-delay

規定在動畫開始之前的延遲。

animation-iteration-count

規定動畫應該播放的次數。

animation-direction

規定是否應該輪流反向播放動畫。

01 keyframes(關鍵幀)

計算機動畫術語,幀-就是動畫中最小單位的單幅影像畫面,相當於電影膠片上的每一格鏡頭。在動畫軟體的時間軸幀表現為一格或一個標記。

關鍵幀——相當於二維動畫中的原畫。指角色或者物體運動或變化中的關鍵動作所處的那一幀。關鍵幀與關鍵幀之間的動畫可以由軟體來建立,叫做過渡幀或者中間幀。

keyframes被稱為關鍵幀,其類似於Flash中的關鍵幀。在CSS3中其主要以“@keyframes”開頭,後面緊跟著是動畫名稱加上一對花括號“{…}”,括號中就是一些不同時間段樣式規則。

在一個“@keyframes”中的樣式規則可以由多個百分比構成的,

如在“0%”到“100%”之間建立更多個百分比,分別給每個百分比中給需要有動畫效果的元素加上不同的樣式,

從而達到一種在不斷變化的效果。

設定基礎樣式如下:

div {
	width: 200px;
	height: 200px;
    border-radius: 100%;
	margin: 100px auto;
	background: #0F3;
}
div:hover{
	animation:changecolor 3s ease-in 0.3s 2;
}

通過不同的百分比切換不同的顏色如下:

@keyframes changecolor{
	0%{
		background:green;
	}
	20%{
		background:pink;
	}
	40%{
		background:red;
	}
	60%{
		background:#000;
	}
	100%{
		background:orange;
	}
}

效果呈現:

02呼叫動畫

animation-name屬性:主要是用來呼叫 @keyframes 定義好的動畫。

需要特別注意: animation-name 呼叫的動畫名需要和“@keyframes”定義的動畫名稱完全一致(區分大小寫),

如果不一致將不具有任何動畫效果。

屬性值:

none:預設值。當值為 none 時,將沒有任何動畫效果,這可以用於覆蓋任何動畫。

“@keyframes”定義的動畫名稱。

03 ----animation-duration設定動畫播放時間

animation-duration主要用來設定CSS3動畫播放時間,其使用方法和transition-duration類似,是用來指定元素播放動畫所持續的時間長,也就是完成從0%到100%一次動畫所需時間。單位:S秒

設定基礎樣式如下:

div {
  width: 200px;
  height: 200px;
  background: #000;
  margin: 100px auto;
  animation-name:h1;/*規定需要繫結到選擇器的 keyframe 名稱。。*/
  animation-duration:2s;/*規定完成動畫所花費的時間,以秒或毫秒計。*/
  animation-timing-function:linear;/*規定動畫的速度曲線。*/
  animation-delay:.5s;/*規定在動畫開始之前的延遲。*/
  animation-iteration-count:infinite;/*規定動畫應該播放的次數。*/
}

通過不同的百分比切換不同的邊框圓角如下:

@keyframes h1{
  from {
    border-radius: 0;
  }
  to {
    border-radius: 50%;
  }
}

效果呈現: