vue-router之實現(xiàn)導(dǎo)航切換過渡動畫效果
過渡動效
提供了transition的封裝組件,添加過渡動畫,通過添加或刪除css類名來實現(xiàn)。
過渡的css類名:
v-enter 進入過渡的開始狀態(tài)
v-enter-active 進入活動狀態(tài)
v-enter-to 進入的結(jié)束狀態(tài)
v-leave 離開過渡的開始狀態(tài)
v-leave-active 離開活動狀態(tài)
v-leave-to 離開結(jié)束狀態(tài)
過渡模式:
in-out 先進后出
out-in 先出后進
用法:
做一個淡隱淡出效果
把想要運動的元素放到<transition></transition>里面,設(shè)置模式。
<transition mode="out-in"> <router-view class="center"></router-view> </transition>
在style里寫動效:
.v-enter{
opacity: 0;
}
.v-enter-active{
transition: 0.5s;
}
.v-enter-to{
opacity: 1;
}
.v-leave{
opacity: 1;
}
.v-leave-to{
opacity:0;
}
.v-leave-active{
transition: 0.5s;
}
就ok啦!
動態(tài)設(shè)置name
再做一個x軸向左和向右滑動進入消失效果。
.left-enter{
transform:translateX(100%);
}
.left-enter-to{
transform:translateX(0);
}
.left-enter-active{
transition: 1s;
}
.left-leave{
transform:translateX(0);
}
.left-leave-to{
transform:translateX(-100%);
}
.left-leave-active{
transition: 1s;
}
在transition標(biāo)簽中用name動態(tài)設(shè)置效果。此時要刪掉mode="out-in"能自然銜接。
<transition name="left"> <!--<router-view name="slider"></router-view>--> <router-view class="center"></router-view> </transition>
向右切換:
.right-enter{
transform:translateX(-100%);
}
.right-enter-active{
transition: 1s;
}
.right-leave-to{
transform:translateX(100%);
}
.right-leave-active{
transition: 1s;
}
要想實現(xiàn)左邊的向左,右邊的向右切換呢
路由元信息
在路由配置中meta可以配置一些數(shù)據(jù),用在路由對象中。
訪問meta中的數(shù)據(jù):$route.meta
也就是說,除了提供的路由配置信息,我們還可以通過meta來自定義想要的數(shù)據(jù)。
實現(xiàn)左邊的向左,右邊的向右切換:
step1:給每個組件分別加上index,如果目標(biāo)路由的index大就向右滑動,否則向左。
meta:{
index:0
}
0,1,2,3這樣。
step2:監(jiān)控路由信息對象(上一篇文章中講過原因),可以拿到離開的和目標(biāo)的index
watch:{
$route(to,from){
console.log(to.meta.index);//目標(biāo)導(dǎo)航下標(biāo)
console.log(from.meta.index);//離開導(dǎo)航下標(biāo)
}
}
step3:拿下標(biāo),比較設(shè)置class名稱
watch:{
$route(to,from){
if(to.meta.index<from.meta.index){
this.names="right"
}else{
this.names="left"
}
}
},
data(){
return{
index:'/home',
names:'left'
}
}
以上這篇vue-router之實現(xiàn)導(dǎo)航切換過渡動畫效果就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vuex報錯之[vuex] unknown mutation type: han
這篇文章主要介紹了Vuex報錯之[vuex] unknown mutation type: handlePower問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
Object.assign觸發(fā)watch原理示例解析
這篇文章主要為大家介紹了Object.assign觸發(fā)watch原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
vue2導(dǎo)入使用vue-codemirror組件的教程詳解
vue-codemirror是一個基于Vue的代碼在線編輯器組件,它封裝了CodeMirror編輯器,使得在Vue項目中可以方便地使用CodeMirror,下面我們就來看看vue-codemirror的具體使用吧2024-02-02
使用el-upload組件實現(xiàn)遞歸多文件上傳的全過程
el-upload組件文件上傳都是每個文件請求一次接口,本次實現(xiàn)一次請求上傳多個文件,下面這篇文章主要給大家介紹了關(guān)于使用el-upload組件實現(xiàn)遞歸多文件上傳的相關(guān)資料,需要的朋友可以參考下2023-03-03

