路由的過渡動畫

想讓路由有過渡動畫,需要在<router-view>標(biāo)簽的外部添加<transition>標(biāo)簽,標(biāo)簽還需要一個(gè)name屬性

<transition name="fade">
  <router-view> </router-view>
</transition>

我們在/src/App.vue文件里添加了<transition>標(biāo)簽,并給標(biāo)簽起了一個(gè)名字叫fade。

css過渡類名: 組件過渡過程中,會有四個(gè)CSS類名進(jìn)行切換,這四個(gè)類名與transition的name屬性有關(guān),比如name=”fade”,會有如下四個(gè)CSS類名:

  1. fade-enter:進(jìn)入過渡的開始狀態(tài),元素被插入時(shí)生效,只應(yīng)用一幀后立刻刪除。
  2. fade-enter-active:進(jìn)入過渡的結(jié)束狀態(tài),元素被插入時(shí)就生效,在過渡過程完成后移除。
  3. fade-leave:離開過渡的開始狀態(tài),元素被刪除時(shí)觸發(fā),只應(yīng)用一幀后立刻刪除。
  4. fade-leave-active:離開過渡的結(jié)束狀態(tài),元素被刪除時(shí)生效,離開過渡完成后被刪除。

從上面四個(gè)類名可以看出,fade-enter-activefade-leave-active在整個(gè)進(jìn)入或離開過程中都有效,所以CSS的transition屬性在這兩個(gè)類下進(jìn)行設(shè)置。

那我們就在App.vue頁面里加入四種CSS樣式效果,并利用CSS3的transition屬性控制動畫的具體效果。代碼如下:

.fade-enter {
  opacity:0;
}
.fade-leave{
  opacity:1;
}
.fade-enter-active{
  transition:opacity .5s;
}
.fade-leave-active{
  opacity:0;
  transition:opacity .5s;
}

上邊的代碼設(shè)置了改變透明度的動畫過渡效果,但是默認(rèn)的mode模式in-out模式,這并不是我們想要的。下面我們學(xué)一下mode模式。
過渡模式mode:
in-out:新元素先進(jìn)入過渡,完成之后當(dāng)前元素過渡離開。
out-in:當(dāng)前元素先進(jìn)行過渡離開,離開完成后新元素過渡進(jìn)入。

<transition name="fade" mode="out-in">
  <router-view/>
</transition>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 混合 組件系統(tǒng)是Vue的核心,如何合理的規(guī)劃組件,是我們在開發(fā)中需要深入思考的問題,我個(gè)人習(xí)慣把一些組件使用邏輯和...
    li4065閱讀 922評論 0 1
  • 概述 Vue 在插入、更新或者移除 DOM 時(shí),提供多種不同方式的應(yīng)用過渡效果。包括以下工具: 在 CSS 過渡和...
    寒梁沐月閱讀 1,460評論 0 3
  • 在AngularJS應(yīng)用中創(chuàng)建動畫,有三種途徑: 使用CSS3動畫 使用JavaScript動畫 使用CSS3過渡...
    oWSQo閱讀 1,557評論 0 3
  • 本節(jié)知識點(diǎn) 在轉(zhuǎn)換的時(shí)候增加過渡動畫效果 使用 <transition>標(biāo)簽 想要路由有過渡動畫效果只需要在<ro...
    我擁抱著我的未來閱讀 774評論 0 0
  • Vue2.0的過渡系統(tǒng)(transition)有了很大的改變,想把1.0的項(xiàng)目遷移到2.0,著實(shí)需要費(fèi)一些功夫,今...
    艱苦奮斗的侯小憨閱讀 8,298評論 0 6

友情鏈接更多精彩內(nèi)容