css動(dòng)畫過渡


title: css動(dòng)畫和transition過渡
toc: true
date: 2017-03-20

  • vue組件
  • 技術(shù)分享

分享css動(dòng)畫和transition過渡的一些個(gè)人理解。

css動(dòng)畫

確定元素樣式

查看并確定被加動(dòng)畫的元素原有樣式,以便在制作動(dòng)畫時(shí)有樣式參照浮驳。

定義動(dòng)畫名稱

實(shí)例代碼:

    @keyframes actionfirst {
      from {top: -30px;opacity: 0;}
      to {top: 0;opacity: 1;}
    }
    @keyframes actiontwo {
      0% {
           -webkit-transform: rotateX(0deg);
           transform: rotateX(0deg);
         }
      25% {
            -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
          }
      50% {
            -webkit-transform: rotateX(-90deg);
            transform: rotateX(-90deg);
          }
      100% {
             -webkit-transform: rotateX(0deg);
             transform: rotateX(0deg);
           }
    }

說明:

  • @keyframes為css創(chuàng)建動(dòng)畫的規(guī)則;
  • actionfirstactiontwo為自己要定義的動(dòng)畫名稱宣旱;
  • 如果動(dòng)畫只有一次變化,則用from{動(dòng)畫開始時(shí)的樣式狀態(tài)}to{動(dòng)畫結(jié)束時(shí)的樣式狀態(tài)}的方式叛薯,大括號里可以寫多種樣式浑吟,它們在動(dòng)畫進(jìn)行時(shí)是同時(shí)變化的,只從開始狀態(tài)到結(jié)束狀態(tài)變化一次耗溜;
  • 如果動(dòng)畫需要多次變化组力,則用百分?jǐn)?shù)的方式從0%{動(dòng)畫開始時(shí)的樣式狀態(tài)}100%{動(dòng)畫結(jié)束時(shí)的樣式狀態(tài)},這之間可以隨意劃分抖拴,如25%{動(dòng)畫進(jìn)行到此時(shí)的樣式狀態(tài)}燎字。

定義動(dòng)畫的樣式名

實(shí)例代碼:

    .fade {
      animation: actionfirst linear 0.5s;
      -webkit-animation: actionfirst linear 0.5s;
    }

說明:

  • .fade為自己定義的樣式名或者樣式選擇器腥椒;
  • animation為css設(shè)置動(dòng)畫屬性的一種簡寫屬性,可分為6個(gè)動(dòng)畫屬性:animation-name候衍、animation-duration笼蛛、animation-timing-functionanimation-delay蛉鹿、animation-iteration-count滨砍、animation-direction
  • actionfirst為需要綁定到此樣式或此選擇器的 keyframe 名稱,即第二步定義的動(dòng)畫名稱妖异;
  • linear為動(dòng)畫速度曲線惋戏;
  • 0.5s為完成動(dòng)畫所花費(fèi)的時(shí)間,用秒或毫秒為單位

動(dòng)畫屬性表:

<table class="table" style="max-width:75em"><thead><tr><th>值</th><th>描述</th></tr></thead><tbody><tr><td width="35%">animation-name</td><td>規(guī)定需要綁定到選擇器的 keyframe 名稱随闺。</td></tr><tr><td>animation-duration</td><td>規(guī)定完成動(dòng)畫所花費(fèi)的時(shí)間日川,以秒或毫秒計(jì)蔓腐。</td></tr><tr><td>animation-timing-function</td><td>規(guī)定動(dòng)畫的速度曲線矩乐。</td></tr><tr><td>animation-delay</td><td>規(guī)定在動(dòng)畫開始之前的延遲。</td></tr><tr><td>animation-iteration-count</td><td>規(guī)定動(dòng)畫應(yīng)該播放的次數(shù)回论。</td></tr><tr><td>animation-direction</td><td>規(guī)定是否應(yīng)該輪流反向播放動(dòng)畫散罕。</td></tr></tbody></table>

動(dòng)畫速率曲線表:

<table class="table" style="max-width:75em"><thead><tr><th>值</th><th>描述</th></tr></thead><tbody><tr><td width="35%">linear</td><td>動(dòng)畫從頭到尾的速度是相同的。</td></tr><tr><td>ease</td><td>默認(rèn)傀蓉。動(dòng)畫以低速開始欧漱,然后加快,在結(jié)束前變慢葬燎。</td></tr><tr><td>ease-in</td><td>動(dòng)畫以低速開始误甚。</td></tr><tr><td>ease-out</td><td>動(dòng)畫以低速結(jié)束。</td></tr><tr><td>ease-in-out</td><td>動(dòng)畫以低速開始和結(jié)束谱净。</td></tr><tr><td>cubic-bezier(n,n,n,n)</td><td>在 cubic-bezier 函數(shù)中自己的值窑邦。可能的值是從 0 到 1 的數(shù)值壕探。</td></tr></tbody></table>

transition過渡

這里分享一些我的個(gè)人理解冈钦,vue.js官方網(wǎng)站上對“過渡效果”和“過渡狀態(tài)”有專業(yè)且詳細(xì)的介紹。

確定元素標(biāo)簽

查看并確定欲加過渡動(dòng)畫效果的元素標(biāo)簽李请,然后在其標(biāo)簽外再加一層<transition></transition>標(biāo)簽瞧筛,并且要在元素的標(biāo)簽上加v-ifv-show。實(shí)例代碼:

<transition name="widget-fade">
  <div class="widget-body" :class="bodyCss" v-show="show">
    <slot name="body"></slot>
  </div>
</transition>

定義動(dòng)畫名稱

這里同上面的css動(dòng)畫第二步一樣较幌,通過css的創(chuàng)建動(dòng)畫規(guī)則@keyframes來定義動(dòng)畫白翻。元素進(jìn)入或離開的動(dòng)畫都在這一步驟中定義乍炉。實(shí)例代碼:

@keyframes widgetfirst {
  from {
    padding-top: 0;
    padding-bottom: 0;
    max-height: 0;
    overflow: hidden;
  }
  to {
    padding-top: 12px;
    padding-bottom: 12px;
    max-height: 1000px;
    overflow: hidden;
  }
}
@keyframes widgettwo {
  from {
    padding-top: 12px;
    padding-bottom: 12px;
    max-height: 1000px;
    overflow: hidden;
  }
  to {
    padding-top: 0;
    padding-bottom: 0;
    max-height: 0;
    overflow: hidden;
  }
}

過渡的css類名

實(shí)例代碼:

.widget-fade-enter-active {
  animation: widgetfirst .5s ease;
}
.widget-fade-leave-active {
  animation: widgettwo .3s linear;
}

這里vue官方給出的類名有四種,分別是:v-enter恩急、v-enter-active杉畜、v-leave衷恭、v-leave-active

1.v-enter: 定義進(jìn)入過渡的開始狀態(tài)此叠。在元素被插入時(shí)生效随珠,在下一個(gè)幀移除灭袁。

2.v-enter-active: 定義進(jìn)入過渡的結(jié)束狀態(tài)。在元素被插入時(shí)生效窗看,在 transition/animation 完成之后移除茸歧。

3.v-leave: 定義離開過渡的開始狀態(tài)显沈。在離開過渡被觸發(fā)時(shí)生效,在下一個(gè)幀移除拉讯。

4.v-leave-active: 定義離開過渡的結(jié)束狀態(tài)。在離開過渡被觸發(fā)時(shí)生效只锭,在 transition/animation 完成之后移除院尔。

  • 若在transition標(biāo)簽中沒有寫name屬性蜻展,則類名中直接使用上述以v-開頭的就可以邀摆;
  • 若在transition標(biāo)簽中寫了name屬性隧熙,則類名中的v-改為name屬性中定義的名字加-,如實(shí)例中所寫的贞盯。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市闷愤,隨后出現(xiàn)的幾起案子件余,更是在濱河造成了極大的恐慌遭居,老刑警劉巖旬渠,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異枪蘑,居然都是意外死亡岖免,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門话侧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闯参,“玉大人,你說我怎么就攤上這事赢赊〖独” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵玩讳,是天一觀的道長嚼贡。 經(jīng)常有香客問我,道長樟澜,這世上最難降的妖魔是什么叮盘? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮柔吼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘觅玻。我一直安慰自己,他們只是感情好溪厘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布畸悬。 她就那樣靜靜地躺著,像睡著了一般傻昙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上僻爽,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天贾惦,我揣著相機(jī)與錄音,去河邊找鬼须板。 笑死,一個(gè)胖子當(dāng)著我的面吹牛绪颖,可吹牛的內(nèi)容都是我干的甜奄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼牍氛,長吁一口氣:“原來是場噩夢啊……” “哼烟阐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蜒茄,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤扩淀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后驻谆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庆聘,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡勺卢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年黑忱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片甫煞。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抚吠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出楷力,到底是詐尸還是另有隱情,我是刑警寧澤萧朝,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布检柬,位于F島的核電站,受9級特大地震影響厕吉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一龄减、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧烁巫,春花似錦宠能、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渣淳。三九已至,卻和暖如春鄙漏,著一層夾襖步出監(jiān)牢的瞬間棺蛛,已是汗流浹背怔蚌。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工媚创, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留彤恶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓声离,卻偏偏與公主長得像,于是被迫代替她去往敵國和親本刽。 傳聞我的和親對象是個(gè)殘疾皇子赠涮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

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

  • 選擇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
  • 本文并非原創(chuàng)也殖,屬于摘抄性質(zhì)务热,并有個(gè)人的加工己儒。 一霎褐、過渡動(dòng)畫 過渡(transition)動(dòng)畫,就是從初始狀態(tài)過渡到...
    前端xiyoki閱讀 11,625評論 1 13
  • 看了很多視頻响谓、文章,最后卻通通忘記了娘纷,別人的知識依舊是別人的跋炕,自己卻什么都沒獲得。此系列文章旨在加深自己的印象辐烂,因...
    DCbryant閱讀 1,864評論 0 4
  • 官方手冊中的有用 $_SERVER['HTTPS'] 變量去判斷,但實(shí)際上目前很多服務(wù)器并沒有設(shè)置此參數(shù)胳嘲,因?yàn)樾枰?..
    YaowenZ閱讀 511評論 0 0