欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue路由切換時(shí)的左滑和右滑效果示例

 更新時(shí)間:2018年05月29日 08:27:48   作者:張成  
這篇文章主要介紹了Vue路由切換時(shí)的左滑和右滑效果,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

如何實(shí)現(xiàn)Vue路由切換時(shí)的左滑和右滑效果,因?yàn)樵髡遳stbhuangyi老師的兩個(gè)慕課項(xiàng)目中都沒(méi)有這樣的效果,于是突發(fā)奇想要做這個(gè)功能,看了看QQ、微信都沒(méi)這樣的效果,最后發(fā)現(xiàn)SegmentFault(思否) 和掘金兩個(gè)app都有這樣的效果,就以此為參考開始做了。

transition

首先看看官網(wǎng) 淡入淡出動(dòng)畫的例子:

<div id="demo">
 <button v-on:click="show = !show">
  Toggle
 </button>
 <transition name="fade">
  <p v-if="show">hello</p>
 </transition>
</div>
new Vue({
 el: '#demo',
 data: {
  show: true
 }
})
.fade-enter-active, .fade-leave-active {
 transition: opacity .5s;
}
.fade-enter, .fade-leave-to {
 opacity: 0;
}

左右切換效果

CSS部分

我們要實(shí)現(xiàn)的是左右切換的效果,所以要定義兩種動(dòng)畫(左滑和右滑)

.transitionBody{
 transition: all 0.15s ease; /*定義動(dòng)畫的時(shí)間和過(guò)渡效果*/
}

.transitionLeft-enter,
.transitionRight-leave-active {
  -webkit-transform: translate(100%, 0);
  transform: translate(100%, 0); 
   /*當(dāng)左滑進(jìn)入右滑進(jìn)入過(guò)渡動(dòng)畫*/
}

.transitionLeft-leave-active,
.transitionRight-enter {
  -webkit-transform: translate(-100%, 0); 
  transform: translate(-100%, 0); 
}

HTML部分

這里的 keep-alive 是Vue的內(nèi)置組件,能在組件切換過(guò)程中將狀態(tài)保留在內(nèi)存中,防止重復(fù)渲染DOM,我們要把它也包裹在transition標(biāo)簽內(nèi),否則頁(yè)面將重新渲染,切換的動(dòng)畫也會(huì)卡頓

<transition :name="transitionName">
  <keep-alive>
      <router-view class="transitionBody"></router-view>
  </keep-alive>
</transition>

JS部分

在Vue組件中,data必須是一個(gè)函數(shù),將對(duì)象 {transitionName: ‘transitionLeft'} 掛載到Vue實(shí)例中,然后我們可以監(jiān)聽路由的 to 和 from 來(lái)判斷此時(shí)應(yīng)該左滑還是右滑,來(lái)動(dòng)態(tài)切換transition的name值。

export default {
 data() {
   return {
    transitionName: 'transitionLeft'
   };
 },
 watch: { 
  '$route' (to, from) { 
   const arr = ['/goods','/ratings','/seller'];
   const compare = arr.indexOf(to.path)>arr.indexOf(from.path);
   this.transitionName = compare ? 'transitionLeft' : 'transitionRight';
  } 
 }  
}

點(diǎn)擊鏈接體驗(yàn)一下: https://zc95.github.io/demo/vue-sell

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論