文章出處

一、Keyframes介紹

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

@keyframes changecolor{  0%{   background: red;  }  100%{    background: green;  }}

在一個“@keyframes”中的樣式規則可以由多個百分比構成的,如在“0%”到“100%”之間創建更多個百分比,分別給每個百分比中給需要有動畫效果的元素加上不同的樣式,從而達到一種在不斷變化的效果。

經驗與技巧:在@keyframes中定義動畫名稱時,其中0%和100%還可以使用關鍵詞fromto來代表,其中0%對應的是from,100%對應的是to。

二、調用動畫 animation-name

animation-name屬性主要是用來調用 @keyframes 定義好的動畫。需要特別注意: animation-name 調用的動畫名需要和“@keyframes”定義的動畫名稱完全一致(區分大小寫),如果不一致將不具有任何動畫效果。

語法:

animation-name: none | IDENT[,none|DENT]*;

1、IDENT是由 @keyframes 創建的動畫名,上面已經講過了(animation-name 調用的動畫名需要和“@keyframes”定義的動畫名稱完全一致);

2、none為默認值,當值為 none 時,將沒有任何動畫效果,這可以用于覆蓋任何動畫。

注意:需要在 Chrome 和 Safari 上面的基礎上加上-webkit-前綴,Firefox加上-moz-。

三、動畫持續時間 animation-duration

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

語法規則

animation-duration: <time>[,<time>]*

取值<time>為數值,單位為秒,其默認值為“0”,這意味著動畫周期為“0”,也就是沒有動畫效果(如果值為負值會被視為“0”)。

四、動畫播放方式 animation-timing-function

animation-timing-function屬性主要用來設置動畫播放方式。主要讓元素根據時間的推進來改變屬性值的變換速率,簡單點說就是動畫的播放方式。

語法規則:

animation-timing-function:ease | linear | cubic-bezier( <number>, <number>) [,  ease-out | ease-in-out | cubic-bezier( <number>, <number>)]*

它和transition中的transition-timing-function一樣,具有以下幾種變換方式:ease,ease-in,ease-in-out,ease-out,linear和cubic-bezier。對應功如下:

\

五、動畫開始播放時間animation-delay

animation-delay屬性用來定義動畫開始播放的時間,用來觸發動畫播放的時間點。和transition-delay屬性一樣,用于定義在瀏覽器開始執行動畫之前等待的時間。

六、動畫播放次數animation-count

animation-iteration-count屬性主要用來定義動畫的播放次數。

語法規則:

animation-iteration-count: infinite | <number> [, infinite | <number>]*

1、其值通常為整數,但也可以使用帶有小數的數字,其默認值為1,這意味著動畫將從開始到結束只播放一次。

2、如果取值為infinite,動畫將會無限次的播放。

舉例:

通過animation-iteration-count屬性讓動畫move只播放5次,代碼設置為:

animation-iteration-count:5;

注意:Chrome或Safari瀏覽器,需要加入-webkit-前綴!

七、播放方向 animation-direction

animation-direction屬性主要用來設置動畫播放方向,其語法規則如下:

animation-direction:normal | alternate [, normal | alternate]*

其主要有兩個值:normalalternate

1、normal是默認值,如果設置為normal時,動畫的每次循環都是向前播放;

2、另一個值是alternate,他的作用是,動畫播放在第偶數次向前播放,第奇數次向反方向播放。

例如:通過animation-direction屬性,將move動畫播放動畫方向設置為alternate,代碼為:

animation-direction:alternate;

注意:Chrome或Safari瀏覽器,需要加入-webkit-前綴!

八、播發狀態 animation-play-state

animation-play-state屬性主要用來控制元素動畫的播放狀態

參數:

其主要有兩個值:runningpaused

其中running是其默認值,主要作用就是類似于音樂播放器一樣,可以通過paused將正在播放的動畫停下來,也可以通過running將暫停的動畫重新播放,這里的重新播放不一定是從元素動畫的開始播放,而是從暫停的那個位置開始播放。另外如果暫停了動畫的播放,元素的樣式將回到最原始設置狀態。

例如,頁面加載時,動畫不播放。代碼如下:

animation-play-state:paused;

一個例子

span {  display: inline-block;  width: 20px;  height: 20px;  background: orange;  transform: translateY(90px);  animation-name: move;  animation-duration: 10s;  animation-timing-function: ease-in;  animation-delay: .2s;  animation-iteration-count:infinite;  animation-direction:alternate;  animation-play-state:paused;}div:hover span {  animation-play-state:running;}

九、動畫時間外的屬性 animation-fill-mode

animation-fill-mode屬性定義在動畫開始之前和結束之后發生的操作。主要具有四個屬性值:none、forwards、backwordsboth。其四個屬性值對應效果如下:

屬性值

效果

none

默認值,表示動畫將按預期進行和結束,在動畫完成其最后一幀時,動畫會反轉到初始幀處

forwards

表示動畫在結束后繼續應用最后的關鍵幀的位置

backwards

會在向元素應用動畫樣式時迅速應用動畫的初始幀

both

元素動畫同時具有forwards和backwards效果

在默認情況之下,動畫不會影響它的關鍵幀之外的屬性,使用animation-fill-mode屬性可以修改動畫的默認行為。簡單的說就是告訴動畫在第一關鍵幀上等待動畫開始,或者在動畫結束時停在最后一個關鍵幀上而不回到動畫的第一幀上。或者同時具有這兩個效果。

例如:讓動畫停在最一幀處。代碼如下:

 animation-fill-mode:forwards; 

看文倉www.kanwencang.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20170111/85349.html

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()