国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Vue路由切換時的左滑和右滑效果示例

2024-05-06 15:33:48
字體:
來源:轉載
供稿:網友

如何實現Vue路由切換時的左滑和右滑效果,因為原作者ustbhuangyi老師的兩個慕課項目中都沒有這樣的效果,于是突發奇想要做這個功能,看了看QQ、微信都沒這樣的效果,最后發現SegmentFault(思否) 和掘金兩個app都有這樣的效果,就以此為參考開始做了。

transition

首先看看官網 淡入淡出動畫的例子:

<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部分

我們要實現的是左右切換的效果,所以要定義兩種動畫(左滑和右滑)

.transitionBody{ transition: all 0.15s ease; /*定義動畫的時間和過渡效果*/}.transitionLeft-enter,.transitionRight-leave-active {  -webkit-transform: translate(100%, 0);  transform: translate(100%, 0);    /*當左滑進入右滑進入過渡動畫*/}.transitionLeft-leave-active,.transitionRight-enter {  -webkit-transform: translate(-100%, 0);   transform: translate(-100%, 0); }

HTML部分

這里的 keep-alive 是Vue的內置組件,能在組件切換過程中將狀態保留在內存中,防止重復渲染DOM,我們要把它也包裹在transition標簽內,否則頁面將重新渲染,切換的動畫也會卡頓

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

JS部分

在Vue組件中,data必須是一個函數,將對象 {transitionName: ‘transitionLeft'} 掛載到Vue實例中,然后我們可以監聽路由的 to 和 from 來判斷此時應該左滑還是右滑,來動態切換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';  }  }  }

點擊鏈接體驗一下: https://zc95.github.io/demo/vue-sell

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 永安市| 霍林郭勒市| 大港区| 大足县| 南溪县| 鄂尔多斯市| 肥乡县| 东兰县| 彭山县| 同仁县| 曲阜市| 清涧县| 邓州市| 遂昌县| 黔南| 宾川县| 宜春市| 永泰县| 理塘县| 兴文县| 略阳县| 霸州市| 嫩江县| 博爱县| 儋州市| 津市市| 西和县| 天津市| 望谟县| 辉县市| 五常市| 保定市| 原阳县| 陇南市| 巴彦县| 桐庐县| 乌兰浩特市| 惠水县| 上林县| 阜阳市| 古交市|