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

首頁 web前端 js教程 vue router自動判斷左右翻頁轉(zhuǎn)場動畫效果的實(shí)現(xiàn)方法

vue router自動判斷左右翻頁轉(zhuǎn)場動畫效果的實(shí)現(xiàn)方法

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

前段時間做了一個移動端spa項(xiàng)目,技術(shù)基于 :vue + vue-router + vuex + mint-ui因?yàn)槭褂昧藇ue-cli腳手架的webpack模版,所有頁面都以.vue為后綴的文件作為一個組件,本文主要和大家分享vue router自動判斷左右翻頁轉(zhuǎn)場動畫效果,希望能幫助到大家。

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

  一般的移動端口單頁應(yīng)用在跳轉(zhuǎn)頁面時候會有相應(yīng)的轉(zhuǎn)場動畫,比如:

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

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

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

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

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

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

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

  那么在跳轉(zhuǎn)頁面之前,只需要比較當(dāng)前頁面和將要跳轉(zhuǎn)到的頁面的路徑深度就可以動態(tài)設(shè)置轉(zhuǎn)場動畫了。

比如 ‘/A/B'的深度 >? ‘/A' 的深度那么 從B頁面跳轉(zhuǎn)到A頁面就應(yīng)該是 效果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片段(用來在跳轉(zhuǎn)頁面之前動態(tài)設(shè)置轉(zhuǎn)場動畫)

  main.js:

//進(jìn)入路由之前設(shè)置攔截器
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?{
??//去登錄頁面以外的頁面(以下是本文關(guān)鍵代碼)
??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ù)路徑名深度設(shè)置轉(zhuǎn)場動畫類型
   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,
?????},
????}
???});
??}
?}
});

相關(guān)推薦:

jquery實(shí)現(xiàn)鍵盤左右翻頁特效_jquery

vue router使用jquery和params傳參詳解

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

以上是vue router自動判斷左右翻頁轉(zhuǎn)場動畫效果的實(shí)現(xiàn)方法的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
耳機(jī)左右怎么分rl 耳機(jī)左右怎么戴 耳機(jī)左右怎么分rl 耳機(jī)左右怎么戴 Feb 22, 2024 pm 05:10 PM

L表示著left,戴在左耳朵上,R表示著right,戴在右耳上。解析1通常情況下耳機(jī)上邊都是會有標(biāo)識,英語字母的簡稱L和R,L表示著left,戴在左耳朵上,R表示著right,戴在右耳上。R、L標(biāo)明的具體位置不固定,以具體耳機(jī)為標(biāo)準(zhǔn)。一部分耳機(jī)會把R標(biāo)識為紅色的。手機(jī)原裝配送的耳機(jī),通常情況下帶話筒和按鈕的一邊為右。補(bǔ)充:耳機(jī)的種類1耳機(jī)是人的隨身攜帶音響的象征。耳機(jī)可分為兩種規(guī)范:OMTP規(guī)范一般被稱為國家標(biāo)準(zhǔn),CTIA一般稱之為國際標(biāo)準(zhǔn)。耳機(jī)按照其換能方法分類,具體有:動圈方式、動鐵方式、靜

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

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

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

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

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

word是常用的辦公軟件之一,在其編輯文本內(nèi)容較長較多不好查閱時,可以進(jìn)行word翻頁。下面小編就跟小伙伴們一起分享下word翻頁的簡單方法教程吧!希望對各位小伙伴們有所幫助!1.首先,我們在電腦上將多頁的word文稿,在word軟件進(jìn)行打開。如下方圖片內(nèi)容所示:2.點(diǎn)擊word界面的滾動條的向上的箭頭,進(jìn)行向上滾動翻頁。如下方圖片內(nèi)容所示:3.如果需要向下翻頁,點(diǎn)擊滾動條的向下的箭頭。如下方圖片內(nèi)容所示:4.點(diǎn)擊滾動條的箭頭翻頁,這種翻頁比較隨意。我們需要快速翻頁,使用鼠標(biāo)右鍵點(diǎn)擊滾動條。如下

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

VueRouter是Vue.js官方提供的路由管理插件,它可以幫助我們在Vue應(yīng)用程序中實(shí)現(xiàn)頁面導(dǎo)航和路由切換。其中的Lazy-Loading特性是VueRouter的一個獨(dú)特優(yōu)勢,它可以極大地優(yōu)化頁面性能。在本文中,我們將介紹VueRouter的Lazy-Loading路由特性,并提供一些優(yōu)化頁面性能的實(shí)際代碼示例。Lazy-Loading是指在需要

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

react router不顯示的解決辦法:1、在父路由組件中加入browserRouter把router都包起來;2、使用“this.props.history.go()”進(jìn)行組件刷新;3、在browserrouter參數(shù)里加上“forcerefresh={true}”;4、在“”里面寫鉤子函數(shù),并在離開或進(jìn)入此路由時調(diào)用即可。

在 Vue 項(xiàng)目中如何使用 Router 實(shí)現(xiàn)重定向功能 在 Vue 項(xiàng)目中如何使用 Router 實(shí)現(xiàn)重定向功能 Sep 15, 2023 am 08:36 AM

在Vue項(xiàng)目中如何使用Router實(shí)現(xiàn)重定向功能在一個Vue項(xiàng)目中,我們常常需要實(shí)現(xiàn)頁面之間的跳轉(zhuǎn)和重定向功能。而VueRouter提供了一個簡單而強(qiáng)大的解決方案。本文將介紹如何在Vue項(xiàng)目中使用Router實(shí)現(xiàn)重定向功能,并給出具體的代碼示例。安裝VueRouter首先,我們需要在Vue項(xiàng)目中安裝VueRouter???/p>

Vue Router Lazy-Loading路由:助力頁面性能提升的趨勢 Vue Router Lazy-Loading路由:助力頁面性能提升的趨勢 Sep 15, 2023 am 08:03 AM

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

See all articles