<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        vue router自動判斷左右翻頁轉場動畫效果

        來源:懂視網 責編:小采 時間:2020-11-27 22:28:03
        文檔

        vue router自動判斷左右翻頁轉場動畫效果

        vue router自動判斷左右翻頁轉場動畫效果:前段時間做了一個移動端spa項目,技術基于 :vue + vue-router + vuex + mint-ui 因為使用了vue-cli腳手架的webpack模版,所有頁面都以.vue為后綴的文件作為一個組件 最近公司項目比較少終于有空來記錄一下自己對vue-router的一些小小的使用心得,
        推薦度:
        導讀vue router自動判斷左右翻頁轉場動畫效果:前段時間做了一個移動端spa項目,技術基于 :vue + vue-router + vuex + mint-ui 因為使用了vue-cli腳手架的webpack模版,所有頁面都以.vue為后綴的文件作為一個組件 最近公司項目比較少終于有空來記錄一下自己對vue-router的一些小小的使用心得,

        前段時間做了一個移動端spa項目,技術基于 :vue + vue-router + vuex + mint-ui

        因為使用了vue-cli腳手架的webpack模版,所有頁面都以.vue為后綴的文件作為一個組件

        最近公司項目比較少終于有空來記錄一下自己對vue-router的一些小小的使用心得,

          一般的移動端口單頁應用在跳轉頁面時候會有相應的轉場動畫,比如:

          1. 從當前一級頁面跳轉二級頁面需要展示的轉場動畫是一級頁面向屏幕左邊移動消失的同時,

           二級頁面從屏幕的右邊向左邊移動出現。(類似翻書翻到下一頁的效果)

          2. 從當前二級頁面跳回一級頁面需要展示的轉場動畫是二級頁面向屏幕右邊移動消失的同時,

           一級頁面從屏幕的左邊向右邊移動出現。類似(翻書翻回到上一頁的效果)

          但是出現了一個問題:如何判斷當前頁面和將要跳轉頁面之間的層級關系呢?

        我的解決辦法是:創建頁面 (組件)時,在定義頁面的router里通過設置頁面的path(訪問路徑 )屬性來區分組件之間的層級關系。

        比如一個一級頁面 (組件) ‘A' 的訪問路徑為 ‘/A' 。他的二級頁面 ‘B' 的訪問路徑為 ‘/A/B' .

          那么在跳轉頁面之前,只需要比較當前頁面和將要跳轉到的頁面的路徑深度就可以動態設置轉場動畫了。

        比如 ‘/A/B'的深度 >  ‘/A' 的深度那么 從B頁面跳轉到A頁面就應該是 效果2:(翻書翻回到上一頁的效果).

        一 。首先父頁面

        home.vue:

        <!-- keepAlList是用來動態判斷組件是否需要keep-alive,建議保存到vuex中作為全局變量,至于下方的css動畫,看官可以按照喜好自由修改-->
        <transition :name="transNa">
         <keep-alive :include="keepAlList">
         <router-view class="child-view"></router-view>
         </keep-alive>
        </transition>
        <style scoped>
        .child-view {
         position: absolute;
         width: 100%;
         height: 100%;
         transition: all .5s ease;
         -webkit-transition: all .5s ease;
         -moz-transition: all .5s ease;
        }
        .rightin-enter,
        .leftin-leave-active {
         opacity: 0;
         transform: translate3d(50% 0, 0);
         -webkit-transform: translate3d(50%, 0, 0);
         -moz-transform: translate3d(50%, 0, 0);
        }
        .leftin-enter,
        .rightin-leave-active {
         opacity: 0;
         transform: translate3d(-50% 0, 0);
         -webkit-transform: translate3d(-50%, 0, 0);
         -moz-transform: translate3d(-50%, 0, 0);
        }
        </style>

        二 。其次附上我的main.js片段(用來在跳轉頁面之前動態設置轉場動畫)

          main.js:

        //進入路由之前設置攔截器
        let noLoginList = ["login", "register", "forget", "home", "classify", "goodsDetial"];
        router.routeInfo.beforeEach((to, from, next) => {
         let user = sessionStorage.getItem('user');
         //如果要去登錄頁面
         if (noLoginList.indexOf(to.name) >= 0) {
         if (!user || user == '') {
         //未登錄的狀態通行
         next();
         return;
         } else {
         if (["login", "register", "forget"].indexOf(to.name) >= 0) {
         //已登錄的狀態去首頁
         next({
         name: 'home'
         });
         return;
         } else {
         //已登錄的狀態去首頁
         next();
         return;
         }
         }
         } else {
         //去登錄頁面以外的頁面(以下是本文關鍵代碼)
         if (user && user != '') {
         //判斷是否為需要緩存組件,如果是添加組件名到數組
         if (to.meta.keepAlive) {
         const toName = to.name;
         let keepLi = store.getters.getKeepAlList;
         keepLi.indexOf(toName) < 0 ? keepLi.push(toName) : '';
         store.commit('SET_KEEPALLIST', keepLi);
         }
         //根據路徑名深度設置轉場動畫類型
         store.commit('SET_TRANSNA', (to.path.split('/').length < from.path.split('/').length ? 'leftin' : 'rightin'));
         next();
         } else {
         let toWhere = router.nameList.indexOf(to.name) >= 0 ? to : {name: 'home'};
         next({
         name: 'login',
         params: {
         jumpTo: {
         name: toWhere.name,
         params: toWhere.params,
         query: toWhere.query,
         },
         }
         });
         }
         }
        });

        總結

        以上所述是小編給大家介紹的vue router自動判斷左右翻頁轉場動畫效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        vue router自動判斷左右翻頁轉場動畫效果

        vue router自動判斷左右翻頁轉場動畫效果:前段時間做了一個移動端spa項目,技術基于 :vue + vue-router + vuex + mint-ui 因為使用了vue-cli腳手架的webpack模版,所有頁面都以.vue為后綴的文件作為一個組件 最近公司項目比較少終于有空來記錄一下自己對vue-router的一些小小的使用心得,
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 激情婷婷成人亚洲综合| a毛片全部免费播放| 无码国产精品一区二区免费vr | 又色又污又黄无遮挡的免费视| 中文字幕亚洲精品| 免费A级毛片无码视频| 99在线观看免费视频| 四虎影在线永久免费观看| tom影院亚洲国产一区二区| 69视频免费观看l| 亚洲欧洲日产国码www| 久久不见久久见免费视频7 | 日韩精品视频在线观看免费| 国产成人高清精品免费软件| 无码日韩人妻AV一区免费l| 亚洲欧洲自拍拍偷精品 美利坚| 一本岛v免费不卡一二三区| 亚洲国产综合无码一区| 99ee6热久久免费精品6| 亚洲欧洲视频在线观看| 成全视频在线观看免费高清动漫视频下载| 亚洲成a人片在线观看精品| 高清国语自产拍免费视频国产 | 狠狠躁狠狠爱免费视频无码| 亚洲一区二区三区偷拍女厕 | 嫩草在线视频www免费观看| 亚洲欧洲精品国产区| 大学生美女毛片免费视频| caoporm碰最新免费公开视频| 亚洲成在人线av| 久久精品a一国产成人免费网站| 亚洲av乱码一区二区三区按摩| 亚洲精品无码久久久| 97在线视频免费| 亚洲国产欧美一区二区三区| 久久精品国产亚洲5555| 久草免费在线观看视频| 美国免费高清一级毛片| 亚洲国产一区在线| 国产美女无遮挡免费网站| 色猫咪免费人成网站在线观看|