6.1 css3 Animation

  1. animation簡(jiǎn)介
    ? animation無疑是CSS3里最牛的功能。可以采用較少的代碼制作超炫的動(dòng)畫。
    ? animation制作動(dòng)畫的原理類似與flash,采用關(guān)鍵幀的概念。
    ? animation可以說是transition的功能加強(qiáng)版,可以控制的更細(xì)膩。

  2. transition
    ? Transition是實(shí)現(xiàn)過渡效果的CSS3屬性,從視覺效果上觀察Transition可讓HTML元素實(shí)現(xiàn)動(dòng)態(tài)效果形成一個(gè)簡(jiǎn)單的動(dòng)畫。
    ? Transition屬性中也有很多和animation相似的地方。

  3. Transition復(fù)習(xí)
    ? transition-property(規(guī)定設(shè)置過渡效果的 CSS 屬性的名稱。)
    ? transition-duration(規(guī)定完成過渡效果需要多少秒或毫秒。)
    ? transition-timing-function(規(guī)定速度效果的速度曲線。)
    ? transition-delay(規(guī)定過度效果的延遲。)

  4. Animation中的屬性
    ? animation-name(動(dòng)畫命名)
    ? animation-duration(動(dòng)畫持續(xù)時(shí)間)
    ? animation-timing-function(動(dòng)畫速度曲線)
    ? animation-iteration-count(動(dòng)畫播放次數(shù))
    ? animation-direction(完成一次動(dòng)畫后的運(yùn)行方式)
    ? animation-play-state(控制動(dòng)畫的播放狀態(tài))
    ? animation-fill-mode(規(guī)定動(dòng)畫在播放之前或之后,其動(dòng)畫效果是否可見)

  5. Transition與Animation的區(qū)別
    ? transition是過渡效果,animation是動(dòng)畫。
    ? transition只能指定起始狀態(tài)和結(jié)束狀態(tài)的動(dòng)畫效果, animation可以有多個(gè)關(guān)鍵幀設(shè)置實(shí)現(xiàn)更加豐富的動(dòng)畫效果。
    ? transition需要有動(dòng)作(hover等)來觸發(fā)才能執(zhí)行,animation可以自己執(zhí)行。
    ? 兩者支持的屬性不同,animation多出iteration-count, direction,play-state等屬性,增加可控性。

  6. animation-name
    ? animation-name: keyframename|none;
    ? 為 @keyframes 動(dòng)畫規(guī)定一個(gè)名稱。
    ? none為默認(rèn)值,既沒有動(dòng)畫效果。

  7. animation-duration
    ? animation-duration: time;
    ? 定義動(dòng)畫完成一個(gè)周期所需要的時(shí)間,以秒或毫秒計(jì)。

  8. animation-timing-function
    ? animation-timing-function: value;
    ? 規(guī)定動(dòng)畫的速度曲線。
    ? linear:動(dòng)畫從頭到尾的速度是相同的。
    ? ease:默認(rèn)。動(dòng)畫以低速開始,然后加快,在結(jié)束前變慢。
    ? ease-in:動(dòng)畫以低速開始。
    ? ease-out:動(dòng)畫以低速結(jié)束。
    ? ease-in-out:動(dòng)畫以低速開始和結(jié)束。

  9. animation-delay
    ? animation-delay: time;
    ? 定義動(dòng)畫的開始時(shí)間(延遲時(shí)間)。
    ? time取值為秒或毫秒計(jì),默認(rèn)值是 0。

  10. animation-iteration-count
    ? animation-iteration-count: n|infinite;
    ? 指定元素播放動(dòng)畫的循環(huán)次數(shù)。
    ? n:定義動(dòng)畫播放次數(shù)的數(shù)值。
    ? infinite:規(guī)定動(dòng)畫應(yīng)該無限次播放。

  11. animation-direction
    ? animation-direction: normal|alternate;
    ? 定義是否應(yīng)該輪流反向播放動(dòng)畫。
    ? normal:默認(rèn)值。動(dòng)畫應(yīng)該正常播放。
    ? alternate:動(dòng)畫輪流反向播放。

  12. animation-play-state
    ? animation-play-state: paused|running;
    ? 屬性規(guī)定動(dòng)畫正在運(yùn)行還是暫停。
    ? paused可以讓動(dòng)畫暫定播放,running可以讓動(dòng)畫繼續(xù)播放。

  13. animation-fill-mode
    ? animation-fill-mode:none|forwards|backwards|both;
    ? 規(guī)定動(dòng)畫在播放之前或之后,其動(dòng)畫效果是否可見。
    ? none :在應(yīng)用動(dòng)畫時(shí),在經(jīng)過延時(shí)時(shí)間后執(zhí)行動(dòng)畫之前及動(dòng)畫結(jié)束后,使元素呈現(xiàn)默認(rèn)狀態(tài)。
    ? forwards:表示動(dòng)畫結(jié)束后,元素就是當(dāng)前動(dòng)畫結(jié)束時(shí)候的狀態(tài)。
    ? backwards:表示動(dòng)畫開始之前,元素處于keyframe是"from"或"0%"關(guān)鍵幀的狀態(tài)。
    ? both:forwards + backwards

  14. Keyframes
    ? 關(guān)鍵幀由”@keyframes”開頭,后面緊跟”動(dòng)畫名稱”和{}。花括號(hào)中就是一些不同時(shí)間段的樣式規(guī)則。
    ? “@keyframes”中的樣式由多個(gè)百分比構(gòu)成,在“0%” 到“100%”中間,可以創(chuàng)建多個(gè)百分比。這個(gè)百分比即在動(dòng)畫過程中的關(guān)鍵幀位置。
    ? 每一個(gè)百分比中都要給動(dòng)畫效果元素加上不同的屬性,從而讓元素在一種不斷變化的狀態(tài)。
    ? 我們可以使用”from””to”來代表一個(gè)動(dòng)畫的開始和結(jié)束幀位置。
    ? 當(dāng)使用百分比表示起始幀時(shí),使用“0%”,不能去掉百分號(hào)。keyframes只接受百分比數(shù)值。

  15. @keyframes寫法
    ? @keyframes Name {
    from { Properties:Properties value; }
    Percentage { Properties:Properties value; }
    to { Properties:Properties value; }
    }

  16. @keyframes寫法
    ? @-webkit-keyframes Name {
    0% { Properties:Properties value; }
    Percentage { Properties:Properties value; }
    100% { Properties:Properties value; }
    }

  17. Animation實(shí)例
    ? @-webkit-keyframes box1 {
    0% { margin-left: 100px; background: green; }
    40% { margin-left: 150px; background: orange; }
    60% { margin-left: 75px; background: blue; }
    100% { margin-left: 100px; background: red; }
    }

  18. 調(diào)用animation的方法
    ? .box1 { width: 50px; height: 50px; margin-left: 100px; background: blue;
    -webkit-animation-name:'box1';/動(dòng)畫屬性名/
    -webkit-animation-duration: 5s;/動(dòng)畫持續(xù)時(shí)間/
    -webkit-animation-timing-function: ease-in-out; /動(dòng)畫頻率/

19 .調(diào)用animation的方法
-webkit-animation-delay: 2s;/動(dòng)畫延遲時(shí)間/
-webkit-animation-iteration-count: 10;/定義循環(huán)資料,infinite為無限次/
-webkit-animation-direction: alternate;/定義動(dòng)畫循環(huán)方式/
}

3D動(dòng)畫

動(dòng)畫的基本編寫方式已經(jīng)介紹完了,相信一些簡(jiǎn)單的2d動(dòng)畫已經(jīng)難不倒大家了接下來咱們看看更加酷炫的3d動(dòng)畫是如何編寫的呢?

CSS3transform改變,使…變形

  1. transform
    ? transform的含義是:改變,使…變形;轉(zhuǎn)換。
    ? transform的屬性包括:rotate() / skew() / scale() / translate(,) ,分別還有x、y之分,比如:rotateX() 和 rotateY() ,以此類推。

  2. rotate
    ? 含義:旋轉(zhuǎn);
    ? 如果設(shè)置的值為正數(shù)表示順時(shí)針旋轉(zhuǎn),如果設(shè)置的值為負(fù)數(shù),則表示逆時(shí)針旋轉(zhuǎn)。其中“deg”是“度”的意思,如“10deg”表示“10度”。
    ? 例: transform:rotate(30deg)

  3. transform-origin
    ? 含義:旋轉(zhuǎn)的基點(diǎn)。
    ? 該屬性提供2個(gè)參數(shù)值,第一個(gè)用于橫坐標(biāo),第二個(gè)用于縱坐標(biāo);如果只提供一個(gè),該值將用于橫坐標(biāo),縱坐標(biāo)將默認(rèn)為50%。
    ? percentage:用百分比指定坐標(biāo)值。可以為負(fù)值。
    ? length:用長(zhǎng)度值指定坐標(biāo)值。可以為負(fù)值。
    ? left center right是水平方向取值,而top center bottom是垂直方向的取值。

  4. translate
    ? 含義:變動(dòng),位移;
    ? 二維坐標(biāo)系中translate我們分為三種情況:
    ? translate(x,y)水平方向和垂直方向同時(shí)移動(dòng)(也就是X軸和Y軸同時(shí)移動(dòng));
    ? translateX(x)僅水平方向移動(dòng)(X軸移動(dòng));
    ? translateY(Y)僅垂直方向移動(dòng)(Y軸移動(dòng));
    ? 三維坐標(biāo)系同理。
    ? 例: transform:translate(100px,20px)

  5. scale
    ? 含義:縮放。
    ? 同樣以二維坐標(biāo)系為例scale分為3種情況:
    ? scale(x,y)使元素水平方向和垂直方向同時(shí)縮放(也就是X軸和Y軸同時(shí)縮放);
    ? scaleX(x)元素僅水平方向縮放(X軸縮放);
    ? scaleY(y)元素僅垂直方向縮放(Y軸縮放);
    ? 縮放基數(shù)為1,如果其值大于1元素就放大,反之其值小于1,元素縮小。
    ? 三維坐標(biāo)系同理。
    ? 例: transform:scale(2,1.5)

  6. skew
    ? 含義:扭曲,傾斜;
    ? 還是以二維坐標(biāo)系為例scale分為3種情況:
    ? skew(x,y)使元素在水平和垂直方向同時(shí)扭曲(X軸和Y軸同時(shí)按一定的角度值進(jìn)行扭曲變形);
    ? skewX(x)僅使元素在水平方向扭曲變形(X軸扭曲變形);
    ? skewY(y)僅使元素在垂直方向扭曲變形(Y軸扭曲變形);
    ? 三維坐標(biāo)系同理。
    ? 例: transform:skew(30deg,10deg)

注意

在編寫3d動(dòng)畫時(shí)要為元素添加transform-style: preserve-3d;屬性。

為了讓動(dòng)畫效果兼容各大瀏覽器我們要在屬性前面添加相應(yīng)的內(nèi)核前綴各個(gè)瀏覽器內(nèi)核前綴總結(jié)

3D動(dòng)畫講到這里也要接近尾聲了。

說了這么多不知道大家記住了多少。咱們?cè)僮鰝€(gè)小練習(xí)鞏固一下吧~

作業(yè):利用animation動(dòng)畫制作一個(gè)有個(gè)性的3d立方體。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,488評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,034評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,327評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,554評(píng)論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,337評(píng)論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,883評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,975評(píng)論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,114評(píng)論 0 286
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,625評(píng)論 1 332
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,555評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,737評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,244評(píng)論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 43,973評(píng)論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,615評(píng)論 1 280
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,343評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,699評(píng)論 2 370

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

  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,324評(píng)論 0 11
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    wzhiq896閱讀 1,779評(píng)論 0 2
  • 1.CSS3 邊框 border-radius CSS屬性用來設(shè)置邊框圓角。當(dāng)使用一個(gè)半徑時(shí)確定一個(gè)圓形;當(dāng)使用兩...
    garble閱讀 653評(píng)論 0 0
  • transform、transition、animation分別代表著轉(zhuǎn)換、過渡以及動(dòng)畫。從各自的名字我們就可以大...
    Ginkela閱讀 3,840評(píng)論 0 12
  • 變形--旋轉(zhuǎn) rotate() 旋轉(zhuǎn)rotate()函數(shù)通過指定的角度參數(shù)使元素相對(duì)原點(diǎn)進(jìn)行旋轉(zhuǎn)。它主要在二維空間...
    阿振_sc閱讀 939評(píng)論 1 5