CSS3中Transition過渡落追、Animation動畫、Transform之2D&3D變換總結(jié)

css3中transition和animation都能夠?qū)崿F(xiàn)動畫效果涯肩,所謂動畫本質(zhì)就是物體的一種狀態(tài)變換成另外一種狀態(tài)的過程呈現(xiàn)轿钠,我們可以結(jié)合2D或者3D變換做出很多酷炫的動畫,下面針對這四部分分別做一個(gè)用法上的小結(jié)病苗。

一疗垛、Transition過渡

1.定義

  • 過渡動畫:是從一個(gè)狀態(tài)漸漸地過渡到另外一個(gè)狀態(tài)
  • 經(jīng)常:hover 等等一起搭配使用,也就是說一般會經(jīng)過一個(gè)動作觸發(fā)之后硫朦,再進(jìn)行變換贷腕。

2.用法

transition:要過渡的屬性  花費(fèi)時(shí)間  運(yùn)動曲線  何時(shí)開始;
  1. 屬性:想要變換的css屬性,寬度咬展、高度泽裳、背景顏色、內(nèi)外邊距都可以破婆,如果想要所有的屬性都變化過渡涮总。
  2. 花費(fèi)時(shí)間:單位是秒(必須寫單位)比如0.5s
  3. 運(yùn)動曲線:默認(rèn)是ease(可以省略)(linear、ease祷舀、ease-in瀑梗、ease-out烹笔、ease-in-out)
  4. 何時(shí)開始:單位是秒(必須寫單位)可以設(shè)置延遲觸發(fā),默認(rèn)是0s(可以省略)

3.口訣

誰做過渡給誰加

二抛丽、Animation動畫

Animation動畫其實(shí)是定義了多個(gè)關(guān)鍵幀谤职,然后通過按照一定的時(shí)間順序播放這些關(guān)鍵幀從而形成了動畫。

1.基本使用

  • 首先定義動畫
  • 再使用(調(diào)用)動畫
.box{
    //使用動畫(使用一個(gè)動畫最少要設(shè)置名稱與動畫時(shí)間)
    animation-name: 動畫名稱;
    animation-duration:1s;
    ...
}
#定義示例
@keyframes 動畫名稱 {
      0% {
           width:100px;
      }
     100% {
          width:200px;
     }
}

2.動畫序列

  • 0%是動畫的開始亿鲜,100%是動畫的完成允蜈。
  • 在@keyframes中定義某個(gè)css樣式,就能創(chuàng)建由當(dāng)前樣式逐漸改變?yōu)樾聵邮降膭赢嬓Ч?/li>
  • 動畫是使元素從一種樣式變換到另外一種樣式的效果狡门,你可以定義任意多的樣式以及任意多的次數(shù)陷寝。
  • 關(guān)鍵詞"from"和"to"相當(dāng)于“0%”和"100%"

3.動畫屬性

  • animation-name(動畫名稱):規(guī)定@keyframes的動畫名稱(必須)
  • animation-duration(動畫時(shí)間):規(guī)定動畫完成一個(gè)周期所花費(fèi)的時(shí)間,單位是秒或者毫秒其馏。(必須)
  • animation-timing-function(動畫速度曲線):linear凤跑、ease、ease-in叛复、ease-out仔引、ease-in-out、 steps()
  • animation-delay(動畫延遲):規(guī)定動畫何時(shí)開始褐奥,默認(rèn)是0
  • animation-iteration-count(動畫次數(shù)):規(guī)定動畫被播放的次數(shù)咖耘,默認(rèn)是1,infinite是一直播放撬码。
  • animation-direction(動畫方向):規(guī)定動畫是否在下一周期逆向播放儿倒,默認(rèn)是"normal",alternate是逆向播放呜笑。
  • animation-play-state(動畫播放狀態(tài)):規(guī)定動畫是否正在運(yùn)行或者暫停夫否,默認(rèn)是running,pause是暫停
  • animation-fill-mode(動畫完成時(shí)的狀態(tài)):規(guī)定動畫結(jié)束后的狀態(tài)叫胁,forwards是保持結(jié)束后的狀態(tài)凰慈,backwards是返回到起始狀態(tài)。

4.動畫簡寫

#注意:簡寫的時(shí)候沒有animation-play-state
animation: <動畫名稱> <動畫時(shí)間> <動畫速度曲線> <動畫延遲> <動畫次數(shù)> <動畫方向> <動畫完成時(shí)的狀態(tài)>

5.steps() 分幾步完成動畫可參考示例

#代碼示例
div{
    width:0px;
    height:30px;
    background-color:red;
    animation: ani 4s steps(5) forwards
}
@keyframes ani{
      0% {
           width:0px;
      }
     100% {
          width:200px;
     }
}

6.連續(xù)執(zhí)行多個(gè)動畫

#1.多個(gè)動畫正常情況下是同時(shí)執(zhí)行的
#2.如果需要形成按照順序執(zhí)行驼鹅,可以通過animation-delay控制后動畫執(zhí)行的先后順序
#3.以下示例就是第一個(gè)動畫寬度變化1秒之后微谓,第二個(gè)動畫高度變化,就形成了按照順序執(zhí)行動畫输钩。
.box {
     width: 0px;
     height: 10px;
     background-color: pink;
     animation: ani1 1s forwards, ani2 5s ease 1s forwards;
}

@keyframes ani1 {
     0% {
          width: 0px;
     }
     100% {
          width: 200px;
     }
}

@keyframes ani2 {
     0% {
         height: 10px;
     }
     100% {
        height: 200px;
     }
}

三豺型、2D變換

(1)2D變換之位移translate

改變元素在頁面中的位置

1.語法

transform:translate(x,y); //沿著X軸與Y軸分別移動x與y的距離
transform:translateX(n); //沿著X軸移動n的距離
transform:translateY(n); //沿著Y軸移動n的距離

2.重點(diǎn)

  • 定義2D變換中的移動,沿著X軸與Y軸移動元素
  • translate最大的優(yōu)點(diǎn)是不會影響到其他元素的位置
  • translate中百分比單位是相對于自身元素的买乃,例如:translate(50%,50%)
  • 對行內(nèi)標(biāo)簽沒有效果
(2)2D變換之旋轉(zhuǎn)rotate

2D旋轉(zhuǎn)是指元素在2緯平面內(nèi)進(jìn)行順時(shí)針或者逆時(shí)針旋轉(zhuǎn)

1.語法

transform:rotate(角度)

2.重點(diǎn)

  • rotate里面是度數(shù)触创,單位是(deg),比如:rotate(45deg)
  • 角度為正時(shí)为牍,順時(shí)針哼绑;負(fù)時(shí),逆時(shí)針
  • 默認(rèn)旋轉(zhuǎn)的中心點(diǎn)是元素的中心點(diǎn)
(3)2D變換之縮放scale

針對元素進(jìn)行放大或者縮小

1.語法

transform:scale(x,y)

2.重點(diǎn)

  • 注意其中的x,y使用逗號分隔
  • transform:scale(1,1):寬和高都放大1倍相當(dāng)于沒有放大
  • transform:scale(2):只寫一個(gè)參數(shù)的時(shí)候碉咆,第二個(gè)參數(shù)相當(dāng)于跟第一個(gè)參數(shù)一樣
  • transform:scale(0.5,0.5):縮小
  • scale最大的優(yōu)勢是不會因?yàn)樽陨泶笮〉目s放影響到其他元素
(4)2D變換之元素中心點(diǎn)設(shè)置

我們可以設(shè)置元素變換的中心點(diǎn)

1.語法

transform-origin:x y

2.重點(diǎn)

  • 注意后面的參數(shù)x與y用空格分開
  • x抖韩、y默認(rèn)的變換的中心點(diǎn)是元素的中心點(diǎn)(50% 50%)
  • 可以給x、y設(shè)置像素或者方位詞(top left right bottom center)
(5)2D變換之綜合寫法注意事項(xiàng)

同時(shí)做多種變換時(shí)可以使用綜合寫法

1.語法

transform:translate(100) scale(1.1,2) rotate(180deg) ...

2.重點(diǎn)

  • 當(dāng)我們同時(shí)有位移和其他屬性的變換的時(shí)候疫铜,一定要把位移變換放在最前面茂浮。

四、3D變換參考

(1)3D移動translate3d(x,y,z)
transform:translate3d(x,y,z)
transform:translateZ(n)
(2)3D旋轉(zhuǎn)rotate3d(x,y,z)
transform:rotate3d(x,y,z)
(3)透視perspective

透視需要寫在被觀察元素的父盒子上面

#代碼示例
body{
  perspective:500px;
}
(4)3D旋轉(zhuǎn)transform-style
  • 控制子元素是否開啟三維立體環(huán)境
  • transform-style:flat 子元素不開啟三維立體環(huán)境壳咕,默認(rèn)的
  • transform-style:preserve 子元素開啟三維立體環(huán)境
  • 代碼是寫給父級席揽,但是影響的是子級
transform-style: preserve-3d;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市谓厘,隨后出現(xiàn)的幾起案子幌羞,更是在濱河造成了極大的恐慌,老刑警劉巖竟稳,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件属桦,死亡現(xiàn)場離奇詭異,居然都是意外死亡他爸,警方通過查閱死者的電腦和手機(jī)聂宾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诊笤,“玉大人系谐,你說我怎么就攤上這事√指” “怎么了纪他?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長许赃。 經(jīng)常有香客問我止喷,道長,這世上最難降的妖魔是什么混聊? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任弹谁,我火速辦了婚禮,結(jié)果婚禮上句喜,老公的妹妹穿的比我還像新娘预愤。我一直安慰自己,他們只是感情好咳胃,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布植康。 她就那樣靜靜地躺著,像睡著了一般展懈。 火紅的嫁衣襯著肌膚如雪销睁。 梳的紋絲不亂的頭發(fā)上供璧,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機(jī)與錄音冻记,去河邊找鬼睡毒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛冗栗,可吹牛的內(nèi)容都是我干的演顾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼隅居,長吁一口氣:“原來是場噩夢啊……” “哼钠至!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起胎源,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤棉钧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后乒融,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掰盘,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年赞季,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了愧捕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡申钩,死狀恐怖次绘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情撒遣,我是刑警寧澤邮偎,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站义黎,受9級特大地震影響禾进,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜廉涕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一泻云、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧狐蜕,春花似錦宠纯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贡羔,卻和暖如春廉白,著一層夾襖步出監(jiān)牢的瞬間个初,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工蒙秒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勃黍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓晕讲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親马澈。 傳聞我的和親對象是個(gè)殘疾皇子瓢省,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評論 2 355

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