5分鐘學(xué)會(huì)CSS動(dòng)畫(huà)-Part1:Transition

剛接觸css的時(shí)候一直很困惑動(dòng)畫(huà)的問(wèn)題熙涤。Transition趴樱,Transform還有Translate這些長(zhǎng)得很像的屬性都是什么隙弛?如何使用animation攘滩?這些雖然看起來(lái)很復(fù)雜很繁瑣庭猩,其實(shí)搞清楚之后很簡(jiǎn)單窟她,而且很實(shí)用,加了動(dòng)畫(huà)效果的網(wǎng)頁(yè)會(huì)立刻顯得生動(dòng)活潑蔼水。

CSS動(dòng)畫(huà)主要由兩個(gè)屬性來(lái)實(shí)現(xiàn):

  1. Transition
  2. Animation + Keyframes

這篇文章主要介紹Transition震糖,關(guān)于Animation的看這里

transition的意思就是當(dāng)某個(gè)元素的某個(gè)屬性發(fā)生變化的時(shí)候,transition會(huì)幫你添加中間幀趴腋,讓這個(gè)變化不那么生硬吊说,比如下面這樣一個(gè)簡(jiǎn)單的box的hover動(dòng)畫(huà),如果不添加這一行transition代碼就會(huì)生硬的直接從方變成圓论咏。

transition1.gif

基本語(yǔ)法

.element {
  transition: [property] [duration] [ease] [delay];
                變化屬性    變化時(shí)間   曲線(xiàn)   延時(shí)
}

比如.red { transition: opacity 300ms ease-in-out 1s;}意思就是transition會(huì)監(jiān)測(cè)這個(gè)class名為red的元素,如果這個(gè)元素的opacity發(fā)生了變化颁井,那么transition會(huì)幫你把這個(gè)變化變成一個(gè)持續(xù)時(shí)間300ms的動(dòng)畫(huà)厅贪,這個(gè)動(dòng)畫(huà)的速度曲線(xiàn)是ease-in-out,并且會(huì)有1s的延遲蚤蔓,也就變化的1s后開(kāi)始執(zhí)行動(dòng)畫(huà)卦溢。

理解了transition是什么之后,現(xiàn)在有兩個(gè)問(wèn)題:

  1. 有哪些屬性可以transition秀又?
  2. 怎么觸發(fā)transition单寂?

問(wèn)題一:有哪些屬性可以transition?

這里查看完整列表吐辙。
其實(shí)很簡(jiǎn)單宣决,概括的說(shuō),只有兩類(lèi)屬性是適合(并且可以)transition的:transformopacity昏苏,其中transform又分為三種類(lèi)型

Transform屬性

  • translate 尊沸,位移。
    比如transform: translateY(15px) 就是在y軸方向往下移動(dòng)15px贤惯。

  • scale洼专,放大縮小
    比如transform: scale(1.2) 就是講元素放大1.2倍

  • rotation,旋轉(zhuǎn)
    比如 transform: rotate(5deg) 元素順時(shí)針旋轉(zhuǎn)15度

問(wèn)題2:如何觸發(fā)一個(gè)transition孵构?


常見(jiàn)方法也只有兩種:

  1. hover之類(lèi)的偽類(lèi)
  2. 通過(guò)class的改變

??1 通過(guò)hover偽類(lèi)觸發(fā)動(dòng)畫(huà)

<div class="trigger">
  <div class="box"></div>
</div>
.trigger {
  width: 200px;
  height: 200px;
  background: #ddd;
  border: 20px solid #999;
}

.box {
  display: inline-block;
  background: pink;
  width: 200px;
  height: 200px;
  transition: transform 300ms ease-in-out;
  pointer-events: none;
}

.trigger:hover .box {
  transform: translate(200px, 150px) rotate(20deg);
}

transition2.gif

transition屬性總是待在會(huì)發(fā)生變化的元素里等待某個(gè)屬性變化的來(lái)臨屁商。什么時(shí)候來(lái)臨呢?這就需要一個(gè)trigger的時(shí)機(jī)颈墅,在上面這個(gè)例子中就是當(dāng)box的父元素.trigger:hover的時(shí)候蜡镶。

注意其中 pointer-events這個(gè)屬性,如果不添加這一個(gè)屬性恤筛,當(dāng)hover box的時(shí)候官还,也會(huì)觸發(fā)這個(gè)transform。

???? 2 通過(guò)添加class觸發(fā)動(dòng)畫(huà)

添加一點(diǎn)js

$('.trigger').on('click',function(){
  $(this).toggleClass('clicked');
});

再改變一下css

.trigger.clicked .box {
  transform: translate(200px, 150px) rotate(20deg);
}

這樣就是通過(guò)改變class來(lái)觸發(fā)transition的動(dòng)畫(huà)毒坛,當(dāng).trigger被點(diǎn)擊的時(shí)候望伦,給.box一個(gè)class:clicked,這個(gè)新的class會(huì)讓box的transform屬性發(fā)生變化煎殷,從而觸發(fā)動(dòng)畫(huà)屡谐。

*小技巧:在chrome里面還能直接查看速度動(dòng)畫(huà)哦!在chrome里面找到合適的動(dòng)畫(huà)曲線(xiàn)蝌数,還能直接復(fù)制bezier(貝塞爾)曲線(xiàn)到css里面愕掏,非常方便。

Screen Shot 2017-04-22 at 5.06.15 PM.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末顶伞,一起剝皮案震驚了整個(gè)濱河市饵撑,隨后出現(xiàn)的幾起案子剑梳,更是在濱河造成了極大的恐慌,老刑警劉巖滑潘,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件垢乙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡语卤,警方通過(guò)查閱死者的電腦和手機(jī)追逮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)粹舵,“玉大人钮孵,你說(shuō)我怎么就攤上這事⊙勐耍” “怎么了巴席?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)诅需。 經(jīng)常有香客問(wèn)我漾唉,道長(zhǎng),這世上最難降的妖魔是什么堰塌? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任赵刑,我火速辦了婚禮,結(jié)果婚禮上场刑,老公的妹妹穿的比我還像新娘料睛。我一直安慰自己,他們只是感情好摇邦,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著屎勘,像睡著了一般施籍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上概漱,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天丑慎,我揣著相機(jī)與錄音,去河邊找鬼瓤摧。 笑死竿裂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的照弥。 我是一名探鬼主播腻异,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼这揣!你這毒婦竟也來(lái)了悔常?” 一聲冷哼從身側(cè)響起影斑,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎机打,沒(méi)想到半個(gè)月后矫户,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡残邀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年皆辽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芥挣。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡驱闷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出九秀,到底是詐尸還是另有隱情遗嗽,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布鼓蜒,位于F島的核電站痹换,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏都弹。R本人自食惡果不足惜娇豫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望畅厢。 院中可真熱鬧冯痢,春花似錦、人聲如沸框杜。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)咪辱。三九已至振劳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間油狂,已是汗流浹背历恐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留专筷,地道東北人弱贼。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像磷蛹,于是被迫代替她去往敵國(guó)和親吮旅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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

  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類(lèi)選擇器 屬性選擇器 繼承屬性: color味咳,font鸟辅,text-align氛什,li...
    wzhiq896閱讀 1,732評(píng)論 0 2
  • W3C標(biāo)準(zhǔn)中對(duì)css3的transition這是樣描述的:“css的transition允許css的屬性值在一定的...
    青春前行閱讀 1,408評(píng)論 0 5
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類(lèi)選擇器 屬性選擇器 繼承屬性: color,font匪凉,text-align枪眉,li...
    love2013閱讀 2,304評(píng)論 0 11
  • 一、HTML5 1.1 認(rèn)識(shí)HTML5 HTML5并不僅僅只是作為HTML標(biāo)記語(yǔ)言的一個(gè)最新版本再层,更重要的是它制定...
    福爾摩雞閱讀 15,794評(píng)論 14 51
  • 一 也許并沒(méi)有那么多選擇聂受。 當(dāng)你看著他一步步走來(lái)蒿秦,鏡頭一點(diǎn)點(diǎn)拉近,場(chǎng)景恍如當(dāng)時(shí)任一日的校道蛋济。時(shí)光仿佛被攔腰砍斷落地...
    散淡度日黃小洛閱讀 316評(píng)論 0 0