CSS3 Animation動畫

前言


在CSS3中出現(xiàn)了可以創(chuàng)建動畫的新屬性,它比Flash制作出來的動畫更加的方便桑驱,長話短說直接進(jìn)入正題學(xué)習(xí)竭恬。

創(chuàng)建動畫


創(chuàng)建動畫需要用到@keyframes關(guān)鍵字,Name代表動畫的名稱熬的。from代表0%的位置痊硕,to代表100%的位置,Percentage是百分比值押框,可以去多個百分比的值岔绸。

 @keyframes Name {
     from {
       Properties:Properties value;
     }
     Percentage {
       Properties:Properties value;
     }
     Percentage {
       Properties:Properties value;
     }
    ...
     to {
       Properties:Properties value;
     }
   }

也可以全部寫成百分比的形式:

 
   @keyframes Name {
      0% {
         Properties:Properties value;
      }
      Percentage {
         Properties:Properties value;
      }
      Percentage {
         Properties:Properties value;
      }
      ...
      100% {
         Properties:Properties value;
      }
    }

下面看一個實(shí)際的例子:

@-webkit-keyframes 'move' {
     0% {
        margin-left: 100px;
        background: green;
     }
     40% {
        margin-left: 150px;
        background: orange;
     }
     60% {
        margin-left: 75px;
        background: blue;
     }
     100% {
        margin-left: 100px;
        background: red;
     }
  }

.box {
    width: 150px;
    height: 150px;
    background:yellow;
    /* 和動畫起始屬性要一致,否則會出現(xiàn)閃爍 */
    margin-left:100px;

    /* ---動畫屬性--- */
    /*動畫屬性名橡伞,上面keyframes定義的動畫名*/
    -webkit-animation-name:'move';

    /*動畫持續(xù)時間*/
    -webkit-animation-duration: 6s;

    /*動畫速度曲線*/
    -webkit-animation-timing-function: ease-in-out; 

    /*動畫延遲時間*/
    -webkit-animation-delay: 1s;

         /*定義循環(huán)資料盒揉,infinite為無限次*/
    -webkit-animation-iteration-count: 4;

         /*定義動畫播放方式*/
    -webkit-animation-direction: alternate;
}

html代碼:

<body>
    <div class="box"></div>
</body>

效果如下:


動畫效果

看完效果后我們分析代碼:
在css中定義了@keyframes動畫關(guān)鍵幀,名字為move兑徘,分別定義了刚盈,0%、40%挂脑、60%藕漱、100%位置時動畫的狀態(tài)。其中@-webkit-是兼容書寫崭闲,下面有提到兼容性問題肋联。

@-webkit-keyframes 'move' {
     0% {
        margin-left: 100px;
        background: green;
     }
     40% {
        margin-left: 150px;
        background: orange;
     }
     60% {
        margin-left: 75px;
        background: blue;
     }
     100% {
        margin-left: 100px;
        background: red;
     }
  }

在動畫物體box上定義基本屬性。

.box {
     width: 150px;
     height: 150px;
     background:yellow;
     margin-left:100px;
}

再給動畫物體box上綁定動畫關(guān)鍵幀刁俭,添加動畫相關(guān)屬性即可牺蹄。

.box {
    /* ---動畫屬性--- */
    -webkit-animation-name:'move';
    -webkit-animation-duration: 6s;
    -webkit-animation-timing-function: ease-in-out; 
    -webkit-animation-delay: 1s;
    -webkit-animation-iteration-count: 4;
    -webkit-animation-direction: alternate;
}

動畫相關(guān)屬性介紹:
1. animation-name:
name的取值可以為none,代表無動畫薄翅。
name的取值也可以為多個值沙兰,表示多個動畫一起運(yùn)動氓奈,用逗號隔開。

2. animation-duration:
動畫所持續(xù)的時間長鼎天,單位為秒舀奶。

3. animation-timing-function:
貝塞爾函數(shù)運(yùn)動曲線。

4. animation-delay:
動畫延遲時間斋射,單位為秒育勺。

5. animation-iteration-count:
其默認(rèn)值為“1”;infinite為無限次數(shù)循環(huán)罗岖。

6. animation-direction:
動畫播放方式涧至,有兩個值。normal和alternate桑包。
如果設(shè)置為normal時南蓬,動畫的每次循環(huán)都是向前播放。
如果設(shè)置為alternate哑了,動畫播放在第偶數(shù)次向前播放赘方,第奇數(shù)次向反方向播放。

當(dāng)然也有簡單的合并語法弱左,和transition熟悉一樣窄陡,可以根據(jù)上面的數(shù)字一一對應(yīng)快速記憶。

animation:1[name] 2[duration] 3[timing-function] 
          4[delay] 5[iteration-count] 6[direction];

默認(rèn)值:1[none]  2[0]  3[ease]  4[0]  5[1]  6[normal]

兼容性

兼容前綴主要是兼容早期各個游覽器版本非標(biāo)準(zhǔn)的實(shí)現(xiàn)拆火。
chromesafari使用的是-webkit-前綴(之前chrome內(nèi)核是webkit跳夭,現(xiàn)在chrome使用的內(nèi)核是blink)。
ie10+使用的是-ms-前綴们镜。
firefox使用的是-moz-前綴币叹。
opera是用的是-0-前綴。

/* chrome safari */
@-webkit-keyframes myrotate{
0%{
    -webkit-transform : rotate(0deg);
}

/* firefox */
@-moz-keyframes myrotate{
0%{
    -moz-transform : rotate(0deg);
}

/* ie */
@-ms-keyframes myrotate{
0%{
    -ms-transform : rotate(0deg);
}

/* opera */
@-o-keyframes myrotate{
0%{
    -o-transform : rotate(0deg);
}

/* 支持w3c標(biāo)準(zhǔn)新版本游覽器 */
@keyframes myrotate{
0%{
    transform : rotate(0deg);
}

用CSS3 Animation配合canvas或者SVG在制作load動畫憎账,音樂播放轉(zhuǎn)動非常方便套硼。animation基本屬性就介紹到這里,趕緊試試吧胞皱。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末邪意,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子反砌,更是在濱河造成了極大的恐慌雾鬼,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宴树,死亡現(xiàn)場離奇詭異策菜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門又憨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翠霍,“玉大人,你說我怎么就攤上這事蠢莺『祝” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵躏将,是天一觀的道長锄弱。 經(jīng)常有香客問我,道長祸憋,這世上最難降的妖魔是什么会宪? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮蚯窥,結(jié)果婚禮上掸鹅,老公的妹妹穿的比我還像新娘。我一直安慰自己沟沙,他們只是感情好河劝,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布壁榕。 她就那樣靜靜地躺著矛紫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪牌里。 梳的紋絲不亂的頭發(fā)上颊咬,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音牡辽,去河邊找鬼喳篇。 笑死,一個胖子當(dāng)著我的面吹牛态辛,可吹牛的內(nèi)容都是我干的麸澜。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼奏黑,長吁一口氣:“原來是場噩夢啊……” “哼炊邦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起熟史,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤馁害,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蹂匹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碘菜,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了忍啸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仰坦。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖计雌,靈堂內(nèi)的尸體忽然破棺而出缎岗,到底是詐尸還是另有隱情,我是刑警寧澤白粉,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布传泊,位于F島的核電站,受9級特大地震影響鸭巴,放射性物質(zhì)發(fā)生泄漏眷细。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一鹃祖、第九天 我趴在偏房一處隱蔽的房頂上張望溪椎。 院中可真熱鬧,春花似錦恬口、人聲如沸校读。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽歉秫。三九已至,卻和暖如春养铸,著一層夾襖步出監(jiān)牢的瞬間雁芙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工钞螟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兔甘,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓鳞滨,卻偏偏與公主長得像洞焙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拯啦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容