1. 程式人生 > >第8節:路由的過渡動畫

第8節:路由的過渡動畫

oid cti san 設置 out show -m 當前 過渡

<transition>標簽

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

1 2 3 <transition name="fade"> <router-view ></router-view> </transition>

我們在/src/App.vue文件裏添加了<transition>標簽,並給標簽起了一個名字叫fade。

css過渡類名:

組件過渡過程中,會有四個CSS類名進行切換,這四個類名與transition的name屬性有關,比如name=”fade”,會有如下四個CSS類名:

  1. fade-enter:進入過渡的開始狀態,元素被插入時生效,只應用一幀後立刻刪除。
  2. fade-enter-active:進入過渡的結束狀態,元素被插入時就生效,在過渡過程完成後移除。
  3. fade-leave:離開過渡的開始狀態,元素被刪除時觸發,只應用一幀後立刻刪除。
  4. fade-leave-active:離開過渡的結束狀態,元素被刪除時生效,離開過渡完成後被刪除。

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

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

1 2 3 4 5 6 7 8 9 10 11 12 13 .fade-enter { opacity:0; } .fade-leave{ opacity:1; } .fade-enter-active{ transition:opacity .5s; } .fade-leave-active{ opacity:0; transition:opacity .5s; }

上邊的代碼設置了改變透明度的動畫過渡效果,但是默認的mode模式in-out模式,這並不是我們想要的。下面我們學一下mode模式。

過渡模式mode:

  • in-out:新元素先進入過渡,完成之後當前元素過渡離開。
  • out-in:當前元素先進行過渡離開,離開完成後新元素過渡進入。

這節課只能算是一個簡單的過渡入門,教會大家原理,如果想做出實用酷炫的過渡效果,你需要有較強的動畫制作能力,我們下節課繼續學習動畫的知識。

第8節:路由的過渡動畫