屬性介紹
@keyframes | 定義動畫 |
animation-name | 定義關鍵影格 @keyframes 的名字。 |
animation-duration | 定義動畫播放完畢反向播放。 |
animation-delay | 定義動畫播放前間隔時間。 |
animation-iteration-count | 定義動畫重複的次數。 infinite 永遠重複播放。 |
animation-direction | 定義動畫播放方式。 |
animation-timing-function | 定義動畫轉變時時間的加速曲線 (例如 linear)。 |
animation-fill-mode | 定義元素在動畫播放外(動畫開始前及結束後)的狀態。 |
animation |
@keyframes
from{} to {}
定義動畫開始到結束
ps. animation-duration屬性定義動畫播放時間。 未指定animation-duration屬性則不會發生動畫,默認值為0s (0秒)
/*css範例-自動播放4秒鐘動畫(一次性動畫)*/ div { width: 100px; height: 100px; background-color: red; -webkit-animation-name: example; /* Safari 4.0 - 8.0 */ -webkit-animation-duration: 4s; /* Safari 4.0 - 8.0 */ animation-name: example; animation-duration: 4s; } /* Safari 4.0 - 8.0 */ @-webkit-keyframes example { from {background-color: red;} to {background-color: yellow;} } /* Standard syntax */ @keyframes example { from {background-color: red;} to {background-color: yellow;} }
0%{} 25%{} 50%{} 100%{}
增加動畫關鍵影格
/*css範例-自動播放4秒鐘動畫(一次性動畫)*/ div { width: 100px; height: 100px; background-color: red; -webkit-animation-name: example; /* Safari 4.0 - 8.0 */ -webkit-animation-duration: 4s; /* Safari 4.0 - 8.0 */ animation-name: example; animation-duration: 4s; } /* Safari 4.0 - 8.0 */ @-webkit-keyframes example { 0% {background-color: red;} 25% {background-color: yellow;} 50% {background-color: blue;} 100% {background-color: green;} } /* Standard syntax */ @keyframes example { 0% {background-color: red;} 25% {background-color: yellow;} 50% {background-color: blue;} 100% {background-color: green;} }
顏色漸變動畫+位移
div { width: 100px; height: 100px; background-color: red; position: relative; -webkit-animation-name: example; /* Safari 4.0 - 8.0 */ -webkit-animation-duration: 4s; /* Safari 4.0 - 8.0 */ animation-name: example; animation-duration: 4s; } /* Safari 4.0 - 8.0 */ @-webkit-keyframes example { 0% {background-color:red; left:0px; top:0px;} 25% {background-color:yellow; left:200px; top:0px;} 50% {background-color:blue; left:200px; top:200px;} 75% {background-color:green; left:0px; top:200px;} 100% {background-color:red; left:0px; top:0px;} } /* Standard syntax */ @keyframes example { 0% {background-color:red; left:0px; top:0px;} 25% {background-color:yellow; left:200px; top:0px;} 50% {background-color:blue; left:200px; top:200px;} 75% {background-color:green; left:0px; top:200px;} 100% {background-color:red; left:0px; top:0px;} }
animation-delay
動畫播放間閣時間
div { width: 100px; height: 100px; background-color: red; position: relative; -webkit-animation-name: example; /* Safari 4.0 - 8.0 */ -webkit-animation-duration: 4s; /* Safari 4.0 - 8.0 */ -webkit-animation-delay: 2s; /* Safari 4.0 - 8.0 */ animation-name: example; animation-duration: 4s; animation-delay: 2s; } /* Safari 4.0 - 8.0 */ @-webkit-keyframes example { 0% {background-color:red; left:0px; top:0px;} 25% {background-color:yellow; left:200px; top:0px;} 50% {background-color:blue; left:200px; top:200px;} 75% {background-color:green; left:0px; top:200px;} 100% {background-color:red; left:0px; top:0px;} } /* Standard syntax */ @keyframes example { 0% {background-color:red; left:0px; top:0px;} 25% {background-color:yellow; left:200px; top:0px;} 50% {background-color:blue; left:200px; top:200px;} 75% {background-color:green; left:0px; top:200px;} 100% {background-color:red; left:0px; top:0px;} }
animation-iteration-count
設定動畫播放次數 (infinite 無限循環)
div { width: 100px; height: 100px; background-color: red; position: relative; -webkit-animation-name: example; /* Safari 4.0 - 8.0 */ -webkit-animation-duration: 4s; /* Safari 4.0 - 8.0 */ -webkit-animation-iteration-count: 3; /* Safari 4.0 - 8.0 */ animation-name: example; animation-duration: 4s; animation-iteration-count: 3; /*循環播放infinite;*/ } /* Safari 4.0 - 8.0 */ @-webkit-keyframes example { 0% {background-color:red; left:0px; top:0px;} 25% {background-color:yellow; left:200px; top:0px;} 50% {background-color:blue; left:200px; top:200px;} 75% {background-color:green; left:0px; top:200px;} 100% {background-color:red; left:0px; top:0px;} } /* Standard syntax */ @keyframes example { 0% {background-color:red; left:0px; top:0px;} 25% {background-color:yellow; left:200px; top:0px;} 50% {background-color:blue; left:200px; top:200px;} 75% {background-color:green; left:0px; top:200px;} 100% {background-color:red; left:0px; top:0px;} }
animation-direction
動畫播放方式
normal | 預設值,動畫向前播放 -webkit-animation-direction: normal; animation-direction: normal; |
reverse | 動畫向後播放 -webkit-animation-direction: reverse; animation-direction: reverse; |
alternate | 動畫先向前播放,再往後播放 -webkit-animation-direction: alternate; animation-direction: alternate; |
alternate-reverse | 動畫先向後播放,再往前播放 -webkit-animation-direction: alternate-reverse; animation-direction: alternate-reverse; |
div { width: 100px; height: 100px; background-color: red; position: relative; -webkit-animation-name: example; /* Safari 4.0 - 8.0 */ -webkit-animation-duration: 4s; /* Safari 4.0 - 8.0 */ -webkit-animation-direction: reverse; /* Safari 4.0 - 8.0 */ animation-name: example; animation-duration: 4s; animation-direction: reverse; } /* Safari 4.0 - 8.0 */ @-webkit-keyframes example { 0% {background-color:red; left:0px; top:0px;} 25% {background-color:yellow; left:200px; top:0px;} 50% {background-color:blue; left:200px; top:200px;} 75% {background-color:green; left:0px; top:200px;} 100% {background-color:red; left:0px; top:0px;} } /* Standard syntax */ @keyframes example { 0% {background-color:red; left:0px; top:0px;} 25% {background-color:yellow; left:200px; top:0px;} 50% {background-color:blue; left:200px; top:200px;} 75% {background-color:green; left:0px; top:200px;} 100% {background-color:red; left:0px; top:0px;} }
animation-timing-function
設定動畫速度
ease | 緩慢>快速>緩慢 |
rlinear | 動畫開始到結束速度不變 |
ease-in | 動畫緩慢淡入 |
ease-out | 動畫緩慢淡出 |
ease-in-out | 動畫開始到結束速度緩慢 |
cubic-bezier(n,n,n,n) | 自定三次動畫速度 |
div { width: 100px; height: 50px; background-color: red; font-weight: bold; position: relative; -webkit-animation: mymove 5s infinite; /* Safari 4.0 - 8.0 */ animation: mymove 5s infinite; } /* Safari 4.0 - 8.0 */ #div1 {-webkit-animation-timing-function: linear;} #div2 {-webkit-animation-timing-function: ease;} #div3 {-webkit-animation-timing-function: ease-in;} #div4 {-webkit-animation-timing-function: ease-out;} #div5 {-webkit-animation-timing-function: ease-in-out;} /* Standard syntax */ #div1 {animation-timing-function: linear;} #div2 {animation-timing-function: ease;} #div3 {animation-timing-function: ease-in;} #div4 {animation-timing-function: ease-out;} #div5 {animation-timing-function: ease-in-out;} /* Safari 4.0 - 8.0 */ @-webkit-keyframes mymove { from {left: 0px;} to {left: 300px;} } /* Standard syntax */ @keyframes mymove { from {left: 0px;} to {left: 300px;} }
animation-fill-mode
設定動畫速度
none | 預設值 |
forwards | 動畫開始到結束速度不變 |
backwards | 動畫緩慢淡入 |
both | 動畫緩慢淡出 |
div { width: 100px; height: 50px; background-color: red; font-weight: bold; position: relative; -webkit-animation: mymove 5s infinite; /* Safari 4.0 - 8.0 */ animation: mymove 5s infinite; } /* Safari 4.0 - 8.0 */ #div1 {-webkit-animation-timing-function: linear;} #div2 {-webkit-animation-timing-function: ease;} #div3 {-webkit-animation-timing-function: ease-in;} #div4 {-webkit-animation-timing-function: ease-out;} #div5 {-webkit-animation-timing-function: ease-in-out;} /* Standard syntax */ #div1 {animation-timing-function: linear;} #div2 {animation-timing-function: ease;} #div3 {animation-timing-function: ease-in;} #div4 {animation-timing-function: ease-out;} #div5 {animation-timing-function: ease-in-out;} /* Safari 4.0 - 8.0 */ @-webkit-keyframes mymove { from {left: 0px;} to {left: 300px;} } /* Standard syntax */ @keyframes mymove { from {left: 0px;} to {left: 300px;} }
Animate.css套件
https://daneden.github.io/animate.css/
class=”動畫 動畫類別 播放方式” 例 : class=”animated bounce infinite”
Animate.css 詳細使用
<!--html範例--> <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css"/> <h2 class="animated infinite bounce"> Hello World! </h2>