国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 web前端 js教程 vue router自動判斷左右翻頁轉場動畫效果的實作方法

vue router自動判斷左右翻頁轉場動畫效果的實作方法

Jan 25, 2018 am 11:47 AM
router 左右 翻頁

前段時間做了一個行動端spa項目,技術基於:vue + vue-router + vuex + mint-ui因為使用了vue-cli腳手架的webpack模版,所有頁面都以.vue為後綴的檔案作為一個組件,本文主要和大家分享vue router自動判斷左右翻頁轉場動畫效果,希望能幫助大家。

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

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

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

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

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

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

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

我的解決方法是:建立頁面 (元件)時,在定義頁面的router裡透過設定頁面的path(存取路徑 )屬性來區(qū)分元件之間的層級關係。

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

  那麼在跳轉頁面之前,只需要比較當前頁面和將要跳轉到的頁面的路徑深度就可以動態(tài)設定轉場動畫了。

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

一。首先父頁

home.vue:

<!-- keepAlList是用來動態(tài)判斷組件是否需要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片段(用來在跳轉頁面之前動態(tài)設定轉場動畫)

  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?==?'')?{
???//未登錄的狀態(tài)通行
???next();
???return;
??}?else?{
???if?(["login",?"register",?"forget"].indexOf(to.name)?>=?0)?{
????//已登錄的狀態(tài)去首頁
????next({
?????name:?'home'
????});
????return;
???}?else?{
????//已登錄的狀態(tài)去首頁
????next();
????return;
???}
??}
?}?else?{
??//去登錄頁面以外的頁面(以下是本文關鍵代碼)
??if?(user?&&?user?!=?'')?{
???//判斷是否為需要緩存組件,如果是添加組件名到數(shù)組
???if?(to.meta.keepAlive)?{
????const?toName?=?to.name;
????let?keepLi?=?store.getters.getKeepAlList;
????keepLi.indexOf(toName)?< 0 ? keepLi.push(toName) : &#39;&#39;;
    store.commit(&#39;SET_KEEPALLIST&#39;, keepLi);
   }
   //根據(jù)路徑名深度設置轉場動畫類型
   store.commit(&#39;SET_TRANSNA&#39;, (to.path.split(&#39;/&#39;).length < from.path.split(&#39;/&#39;).length ? &#39;leftin&#39; : &#39;rightin&#39;));
   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,
?????},
????}
???});
??}
?}
});

相關推薦:

#jquery實作鍵盤左右翻頁特效_jquery

vue router使用jquery和params傳參詳解

vue router路由參數(shù)刷新消失問題的解決方法

以上是vue router自動判斷左右翻頁轉場動畫效果的實作方法的詳細內容。更多資訊請關注PHP中文網(wǎng)其他相關文章!

本網(wǎng)站聲明
本文內容由網(wǎng)友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權的內容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
耳機左右怎麼分rl 耳機左右怎麼戴 耳機左右怎麼分rl 耳機左右怎麼戴 Feb 22, 2024 pm 05:10 PM

L表示著left,戴在左耳朵上,R表示著right,戴在右耳上。解析1通常耳機上邊都是會有標識,英文字母的簡稱L和R,L表示著left,戴在左耳朵上,R表示著right,戴在右耳上。 R、L標示的具體位置不固定,以具體耳機為標準。一部分耳機會把R標示為紅色的。手機原廠配送的耳機,通常有麥克風和按鈕的一邊為右。補充:耳機的種類1耳機是人的隨身攜帶音響的象徵。耳機可分為兩種規(guī)範:OMTP規(guī)範一般稱為國家標準,CTIA一般稱為國際標準。耳機依其換能方法分類,具體有:動圈方式、動鐵方式、靜

React Router使用指南:如何實現(xiàn)前端路由控制 React Router使用指南:如何實現(xiàn)前端路由控制 Sep 29, 2023 pm 05:45 PM

ReactRouter使用指南:如何實現(xiàn)前端路由控制隨著單頁應用的流行,前端路由成為了一個不可忽視的重要部分。 ReactRouter作為React生態(tài)系統(tǒng)中最受歡迎的路由庫,提供了豐富的功能和易用的API,使得前端路由的實作變得非常簡單和靈活。本文將介紹ReactRouter的使用方法,並提供一些具體的程式碼範例。安裝ReactRouter首先,我們需要

功耗測試及評估(rx588功耗測試與評估) 功耗測試及評估(rx588功耗測試與評估) Dec 31, 2023 pm 09:38 PM

rx588功耗250W左右。 rx580看電影耗電,但耗電不多。很多影片都需要硬體來解碼。多多少少都會用得到顯示卡。 xfx深紅色和迪蘭惡魔單卡+7700K的平臺功耗在380w左右,7700k算100w,其他設備加一起最多30w,也就是rx588的功耗在250w左右,雙卡整機功耗就是630w到650w ,700w以上的才夠,但這個時候電源的負載太高,影響壽命,按照6成-8成的負載計算,理想的電源額定功率在850到1000w,具體還要看用什麼cpu和超不超頻。 h61主機板支援588顯示卡嗎H61主機板本身是

word翻頁怎麼做呢 word翻頁怎麼做呢 Mar 19, 2024 pm 07:22 PM

word是常用的辦公室軟體之一,當其編輯文字內容較長較多不好查閱時,可以進行word翻頁。下面小編就跟朋友們分享下word翻頁的簡單方法教學吧!希望對各位小夥伴們有幫助! 1.首先,我們在電腦上將多頁的word文稿,在word軟體進行開啟。如下方圖片內容所示:2.點選word介面的捲軸的向上的箭頭,進行向上捲動翻頁。如下方圖片內容所示:3.如果需要向下翻頁,點擊捲軸的向下的箭頭。如下方圖片內容所示:4.點擊捲軸的箭頭翻頁,這種翻頁比較隨意。我們需要快速翻頁,使用滑鼠右鍵點擊捲軸。如下

Vue Router Lazy-Loading路由的獨特優(yōu)勢,如何優(yōu)化頁面效能? Vue Router Lazy-Loading路由的獨特優(yōu)勢,如何優(yōu)化頁面效能? Sep 15, 2023 am 10:36 AM

VueRouter是Vue.js官方提供的路由管理插件,它可以幫助我們在Vue應用程式中實現(xiàn)頁面導航和路由切換。其中的Lazy-Loading特性是VueRouter的獨特優(yōu)勢,它可以大幅優(yōu)化頁面效能。在本文中,我們將介紹VueRouter的Lazy-Loading路由特性,並提供一些最佳化頁面效能的實際程式碼範例。 Lazy-Loading是指在需要

react router 不顯示怎麼辦 react router 不顯示怎麼辦 Dec 30, 2022 am 09:30 AM

react router不顯示的解決方法:1、在父路由元件中加入browserRouter把router都包起來;2、使用「this.props.history.go()」進行元件刷新;3、在browserrouter參數(shù)裡加上「forcerefresh ={true}」;4、在「<Route>」裡面寫鉤子函數(shù),並在離開或進入此路由時呼叫即可。

在 Vue 專案中如何使用 Router 實作重定向功能 在 Vue 專案中如何使用 Router 實作重定向功能 Sep 15, 2023 am 08:36 AM

在Vue專案中如何使用Router實作重新導向功能在一個Vue專案中,我們常常需要實作頁面之間的跳躍與重定向功能。而VueRouter提供了一個簡單而強大的解決方案。本文將介紹如何在Vue專案中使用Router實作重定向功能,並給出具體的程式碼範例。安裝VueRouter首先,我們需要在Vue專案中安裝VueRouter。可

Vue Router Lazy-Loading路由:協(xié)助頁面效能提升的趨勢 Vue Router Lazy-Loading路由:協(xié)助頁面效能提升的趨勢 Sep 15, 2023 am 08:03 AM

VueRouter是Vue.js框架中的官方路由管理器。它允許開發(fā)者透過路由映射來切換頁面內容,使得單頁應用程式更加可控和易於維護。但是,在應用程式變得越來越複雜的情況下,路由的載入和解析可能會成為效能瓶頸。為了解決這個問題,VueRouter提供了一個懶加載路由的功能,即將路由的載入推遲到實際需要時。 Lazy-loading(懶加載)是一種加載技術,它

See all articles