HTML和CSS效果

css3動畫以及動畫庫animate.css的使用

作為一個(gè)攻城尸郑叠,沒有點(diǎn)高端大氣上檔次的東西怎么能行呢,那么css3的動畫就絕對是值得你擁有了明棍,雖說IE9以及更早版本的IE瀏覽器都不支持css3動畫更卒,但是IE6-8瀏覽器已是江河日下紧憾,使用谷歌瀏覽器、火狐瀏覽器、IE10+瀏覽器以及移動端瀏覽器等這些支持css3動畫的瀏覽器的人數(shù)越來越多散址,所以如果很簡單的就能讓一部分人獲得更好的用戶體驗(yàn),那何樂而不為呢盾饮。

從廣義上來講裳瘪,css3動畫可以分為兩種:過渡動畫和關(guān)鍵幀動畫

\color{red}{css3 過渡}

第一種叫過渡(transition)動畫,就是從初始狀態(tài)過渡到結(jié)束狀態(tài)這個(gè)過程中所產(chǎn)生的動畫橙凳。所謂的狀態(tài)就是指大小蕾殴、位置、顏色岛啸、變形(transform)等等這些屬性钓觉。css過渡只能定義首和尾兩個(gè)狀態(tài),所以是最簡單的一種動畫坚踩。
通過 CSS3荡灾,我們可以在不使用 Flash 動畫或 JavaScript 的情況下,當(dāng)元素從一種樣式變換為另一種樣式時(shí)為元素添加效果。

1.瀏覽器支持:Internet Explorer 10批幌、Firefox础锐、Chrome 以及 Opera 支持 transition 屬性
2.它如何工作?
CSS3 過渡是元素從一種樣式逐漸改變?yōu)榱硪环N的效果荧缘。
要實(shí)現(xiàn)這一點(diǎn)皆警,必須規(guī)定兩項(xiàng)內(nèi)容:
-規(guī)定您希望把效果添加到哪個(gè) CSS 屬性上
-規(guī)定效果的時(shí)長
3.過渡屬性
要想使一個(gè)元素產(chǎn)生過渡動畫,首先要在這個(gè)元素上用transition屬性定義動畫的各種參數(shù)截粗∫可定義的參數(shù)有

transition-property:規(guī)定對哪個(gè)屬性進(jìn)行過渡
transition-duration:定義過渡的時(shí)間,默認(rèn)是0
transition-timing-function:定義過渡動畫的緩動效果桐愉,如淡入财破、淡出等,默認(rèn)是 ease
transition-delay:規(guī)定過渡效果的延遲時(shí)間从诲,即在過了這個(gè)時(shí)間后才開始動畫左痢,默認(rèn)是0

div{
  transition-property:width;/* 過渡名稱 */
  transition-duration:2s;/* 過渡時(shí)間 */
  transition-timing-function:ease;/* 過渡時(shí)間曲線 */
  transition-delay:2s; /* 過渡延遲2s */
}

為了書寫方便,也可以把這四個(gè)屬性按照以上順序簡寫在一個(gè) transition 屬性

div{
  transition: width 2s ease,background 1s linear;/*簡寫屬性*/
}

如果是使用屬性的默認(rèn)值系洛,則可以省略:

div{transition: width 2s}  相當(dāng)于  div{transition: width 2s ease 0}

如果想要同時(shí)過渡多個(gè)屬性俊性,可以用逗號隔開,如:

div{transition: width 2s,height 2s,background 2s;}

使用transtion屬性只是規(guī)定了要如何去過渡描扯,要想讓動畫發(fā)生定页,還得要有元素狀態(tài)的改變。如何改變元素狀態(tài)呢绽诚,當(dāng)然就是在css中給這個(gè)元素定義一個(gè)類(:hover等偽類也可以)典徊,這個(gè)類描述的是過渡動畫結(jié)束時(shí)元素的狀態(tài)。
除了使用hover等系統(tǒng)提供的偽類外恩够,我們也可以隨意的定義自己的類卒落,然后想要過渡時(shí)就通過js把類加到元素上面

\color{red}{keyframes動畫}

第二種叫做關(guān)鍵幀(keyframes)動畫。不同于第一種的過渡動畫只能定義首尾兩個(gè)狀態(tài)蜂桶,關(guān)鍵幀動畫可以定義多個(gè)狀態(tài)儡毕,或者用關(guān)鍵幀來說的話,過渡動畫只能定義第一幀和最后一幀這兩個(gè)關(guān)鍵幀扑媚,而關(guān)鍵幀動畫則可以定義任意多的關(guān)鍵幀腰湾,因而能實(shí)現(xiàn)更復(fù)雜的動畫效果。

關(guān)鍵幀動畫的定義方式也比較特殊疆股,它使用了一個(gè)關(guān)鍵字 @keyframes 來定義動畫费坊。具體格式為:

@keyframes 動畫名稱{
時(shí)間點(diǎn) {元素狀態(tài)}
時(shí)間點(diǎn) {元素狀態(tài)}
}
例如:

@keyframes demo{
0% {background: red; width:100px;}
10% {background: green; width:120px;}
40% {background: blue; width:140px;}
70%{background: orange; width:160px;}
100%{background: yellow; width:180px;}
}

這段代碼定義了一個(gè)名為demo,且有5個(gè)關(guān)鍵幀的動畫。0% 押桃,10% 等這些表示的是時(shí)間點(diǎn)葵萎,是相對于整個(gè)動畫的持續(xù)時(shí)間來說的,時(shí)間點(diǎn)之后的花括號里則是元素的狀態(tài)屬性集合唱凯,描述了這個(gè)元素在這個(gè)時(shí)間點(diǎn)的狀態(tài)羡忘,動畫發(fā)生時(shí),就是從第一個(gè)狀態(tài)到第二個(gè)狀態(tài)進(jìn)行過渡磕昼,然后從第二個(gè)狀態(tài)到第三個(gè)狀態(tài)進(jìn)行過渡卷雕,直到最后一個(gè)狀態(tài)。一般來說票从,0%和100%這兩個(gè)關(guān)鍵幀是必須要定義的漫雕。

現(xiàn)在我們知道了怎么去定義一個(gè)關(guān)鍵幀動畫了,那怎么去實(shí)現(xiàn)這個(gè)動畫呢峰鄙?其實(shí)很簡單浸间,只要把這個(gè)動畫綁定到某個(gè)要進(jìn)行動畫的元素上就行了。

把動畫綁定到元素上吟榴,我們可以使用animation屬性魁蒜。animation屬性有以下這些:

animation-name 規(guī)定@keyframes動畫的名稱
animation-duration 規(guī)定動畫完成一個(gè)周期所花費(fèi)的秒或毫秒。默認(rèn)是0.
animation-timing-function 規(guī)定動畫的速度曲線吩翻。默認(rèn)是“ease”兜看。
animation-delay規(guī)定動畫何時(shí)開始
animation-iteration-count規(guī)定動畫被播放的次數(shù)。默認(rèn)是1狭瞎。
animation-direction規(guī)定動畫是否在下一周期逆向地播放细移。 默認(rèn)是“normal”。
animation-play-state規(guī)定動畫是否正在運(yùn)行或暫停熊锭。默認(rèn)是“running”弧轧。
animation-fill-mode規(guī)定對象動畫時(shí)間之外的狀態(tài)。

像前面講的transition屬性一樣碗殷,也可以把這些animation屬性簡寫到一個(gè)animation中劣针,使用默認(rèn)值的也可以省略掉。但 animation-play-state 屬性不能簡寫到animation中亿扁。

div{
animation: demo 5s;
}

只要像這樣把定義好的動畫綁定到元素上捺典,就能實(shí)現(xiàn)關(guān)鍵幀動畫了,而不是像第一種過渡動畫那樣从祝,需要一個(gè)狀態(tài)的改變才能觸發(fā)動畫襟己。
注意,為了達(dá)到最佳的瀏覽器兼容效果牍陌,在實(shí)際書寫代碼的時(shí)候擎浴,還必須加上各大瀏覽器的私有前綴

\color{red}{animate.css}

animate.css是一個(gè)使用CSS3的animation制作的動畫效果的CSS集合,里面預(yù)設(shè)了很多種常用的動畫毒涧,且使用非常簡單贮预。下面我給大家介紹一下animate.css的使用

引入animate.css很容易,有以下幾種方法
1.從官網(wǎng)下載
https://raw.github.com/daneden/animate.css/master/animate.css
2.通過npm安裝

$ npm install animate.css

3.使用在線cdn
https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css
https://unpkg.com/animate.css@3.5.2/animate.min.css

animate.css的使用非常簡單,因?yàn)樗前巡煌膭赢嫿壎ǖ搅瞬煌念惱锓峦蹋韵胍褂媚姆N動畫滑频,只需要把通用類animated和相應(yīng)的類添加到元素上就行了。
至于動畫的配置參數(shù)唤冈,比如動畫持續(xù)時(shí)間峡迷,動畫的執(zhí)行次數(shù)等等,你可以在你的的元素上自行定義你虹,覆蓋掉animate.css里面所定義的就行了绘搞。

animate.css里面的類,主要包括Attention(晃動效果)傅物、bounce(彈性緩沖效果)夯辖、fade(透明度變化效果)、flip(翻轉(zhuǎn)效果)董饰、rotate(旋轉(zhuǎn)效果)楼雹、slide(滑動效果)、zoom(變焦效果)尖阔、special(特殊效果)這8類贮缅。
https://daneden.github.io/animate.css/

1.https://www.html5tricks.com/
https://www.html5tricks.com/demo/html5-canvas-elasticity-text/index.html(P8)
https://www.html5tricks.com/demo/css3-map-hot-area/index.html(P10地圖熱點(diǎn))
https://www.html5tricks.com/demo/jquery-hoverex/index.html
https://www.html5tricks.com/demo/css3-3d-image-rotate/index.html(P31鼠標(biāo)移入圖片效果)
2.十二個(gè)創(chuàng)新的網(wǎng)頁界面交互和動畫效果http://www.yyyweb.com/3470.html
3.http://www.17sucai.com/
4.html5 svg線條動態(tài)繪制iphone邊框動畫效果演示http://www.htmleaf.com/Demo/20141009101.html
5.Canvas下雪效果實(shí)現(xiàn)https://www.deanhan.cn/canvas-snow.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市介却,隨后出現(xiàn)的幾起案子谴供,更是在濱河造成了極大的恐慌,老刑警劉巖齿坷,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桂肌,死亡現(xiàn)場離奇詭異,居然都是意外死亡永淌,警方通過查閱死者的電腦和手機(jī)崎场,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來遂蛀,“玉大人谭跨,你說我怎么就攤上這事±畹危” “怎么了螃宙?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長所坯。 經(jīng)常有香客問我谆扎,道長,這世上最難降的妖魔是什么芹助? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任堂湖,我火速辦了婚禮闲先,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘无蜂。我一直安慰自己伺糠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布酱讶。 她就那樣靜靜地躺著退盯,像睡著了一般彼乌。 火紅的嫁衣襯著肌膚如雪泻肯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天慰照,我揣著相機(jī)與錄音灶挟,去河邊找鬼。 笑死毒租,一個(gè)胖子當(dāng)著我的面吹牛稚铣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播墅垮,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼惕医,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了算色?” 一聲冷哼從身側(cè)響起抬伺,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎灾梦,沒想到半個(gè)月后峡钓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡若河,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年能岩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片萧福。...
    茶點(diǎn)故事閱讀 40,144評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拉鹃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鲫忍,到底是詐尸還是另有隱情毛俏,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布饲窿,位于F島的核電站煌寇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏逾雄。R本人自食惡果不足惜阀溶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一腻脏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧银锻,春花似錦永品、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至更振,卻和暖如春炕桨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肯腕。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工献宫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人实撒。 一個(gè)月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓姊途,卻偏偏與公主長得像,于是被迫代替她去往敵國和親知态。 傳聞我的和親對象是個(gè)殘疾皇子捷兰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評論 2 355

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

  • 在AngularJS應(yīng)用中創(chuàng)建動畫,有三種途徑: 使用CSS3動畫 使用JavaScript動畫 使用CSS3過渡...
    oWSQo閱讀 1,460評論 0 3
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color负敏,font贡茅,text-align,li...
    love2013閱讀 2,315評論 0 11
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color原在,font友扰,text-align,li...
    wzhiq896閱讀 1,756評論 0 2
  • CSS參考手冊 一庶柿、初識CSS3 1.1 CSS是什么 CSS3在CSS2.1的基礎(chǔ)上增加了很多強(qiáng)大的新功能村怪。目前...
    沒汁帥閱讀 3,585評論 1 13
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)浮庐。 注意:講述HT...
    kismetajun閱讀 27,490評論 1 45