vue router自动判断左右翻页转场动画效果的实现方法
前段时间做了一个移动端spa项目,技术基于 :vue + vue-router + vuex + mint-ui因为使用了vue-cli脚手架的webpack模版,所有页面都以.vue为后缀的文件作为一个组件,本文主要和大家分享vue router自动判断左右翻页转场动画效果,希望能帮助到大家。
最近公司项目比较少终于有空来记录一下自己对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, }, } }); } } });
相关推荐:
Atas ialah kandungan terperinci vue router自动判断左右翻页转场动画效果的实现方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



L bermaksud kiri, dipakai pada telinga kiri, dan R bermaksud kanan, dipakai pada telinga kanan. Analisis 1 Biasanya terdapat logo pada fon telinga Huruf Inggeris disingkatkan sebagai L dan R. L bermaksud kiri dan dipakai pada telinga kiri R bermaksud kanan dan dipakai pada telinga kanan. Kedudukan khusus yang ditandakan oleh R dan L tidak tetap dan berdasarkan fon kepala tertentu. Sesetengah fon kepala akan menandakan R dengan warna merah. Untuk fon kepala yang disertakan dengan pakej asal telefon bimbit, sisi dengan mikrofon dan butang biasanya berada di sebelah kanan. Tambahan: Jenis Fon Kepala 1 Fon kepala ialah simbol audio mudah alih orang ramai. Fon kepala boleh dibahagikan kepada dua spesifikasi: Spesifikasi OMTP biasanya dipanggil piawaian kebangsaan, dan CTIA biasanya dipanggil piawaian antarabangsa. Fon telinga dikelaskan mengikut kaedah penukaran tenaga mereka, khususnya: kaedah gegelung dinamik, kaedah besi bergerak, kaedah statik

Panduan Pengguna ReactRouter: Cara Melaksanakan Kawalan Penghalaan Hadapan Dengan populariti aplikasi satu halaman, penghalaan bahagian hadapan telah menjadi bahagian penting yang tidak boleh diabaikan. Sebagai perpustakaan penghalaan paling popular dalam ekosistem React, ReactRouter menyediakan fungsi yang kaya dan API yang mudah digunakan, menjadikan pelaksanaan penghalaan bahagian hadapan sangat mudah dan fleksibel. Artikel ini akan memperkenalkan cara menggunakan ReactRouter dan menyediakan beberapa contoh kod khusus. Untuk memasang ReactRouter dahulu, kita perlukan

Penggunaan kuasa rx588 adalah kira-kira 250W. Menonton filem pada rx580 menggunakan kuasa, tetapi tidak banyak. Banyak video memerlukan perkakasan untuk menyahkod. Kad grafik akan digunakan lebih kurang. Penggunaan kuasa platform bagi kad tunggal xfx Crimson dan Dylan Demon + 7700K adalah kira-kira 380w, 7700k dikira sebagai 100w, dan peranti lain bersama-sama adalah sehingga 30w, iaitu penggunaan kuasa rx588 adalah kira-kira 250w, dan penggunaan kuasa mesin dwi-kad adalah 630w hingga 650w , lebih daripada 700w sudah mencukupi, tetapi pada masa ini beban bekalan kuasa terlalu tinggi, yang menjejaskan jangka hayat Dikira berdasarkan beban 60% hingga 80%, kuasa yang ideal kuasa terkadar bekalan ialah 850 hingga 1000w Ia bergantung pada CPU yang digunakan dan sama ada ia di-overclock. Adakah papan induk h61 menyokong kad grafik 588 itu sendiri?

Word ialah salah satu perisian pejabat yang biasa digunakan Apabila kandungan teks yang disunting panjang dan sukar dibaca, anda boleh membuka halaman dalam Word. Di bawah, editor akan berkongsi dengan rakan saya tutorial mudah tentang cara menukar halaman dalam Word! Harap ini membantu anda semua! 1. Pertama, kami membuka dokumen perkataan berbilang halaman dalam perisian word pada komputer. Seperti yang ditunjukkan dalam gambar di bawah: 2. Klik anak panah ke atas pada bar skrol antara muka perkataan untuk menatal ke atas dan membelek halaman. Seperti yang ditunjukkan dalam gambar di bawah: 3. Jika anda perlu menurunkan muka surat, klik anak panah ke bawah pada bar skrol. Seperti yang ditunjukkan dalam gambar di bawah: 4. Klik anak panah pada bar skrol untuk membelek halaman seperti ini lebih santai. Kita perlu menukar halaman dengan cepat dengan menggunakan butang tetikus kanan untuk mengklik pada bar skrol. seperti berikut

Bagaimana untuk menggunakan JavaScript untuk melaksanakan fungsi mengubah halaman tatal tak terhingga? Penatalan tanpa had telah menjadi sangat popular dalam reka bentuk laman web moden. Ciri ini membantu pengguna menatal halaman untuk memuatkan kandungan baharu tanpa perlu mengklik butang halaman. Dalam artikel ini, kami akan memperkenalkan cara menggunakan JavaScript untuk melaksanakan penatalan tak terhingga dan memberikan contoh kod khusus. Untuk melaksanakan fungsi mengubah halaman tatal tanpa had, kita perlu mendengar peristiwa tatal pengguna dan memuatkan kandungan baharu apabila halaman menatal ke kedudukan tertentu.

VueRouter ialah pemalam pengurusan penghalaan yang disediakan secara rasmi oleh Vue.js Ia boleh membantu kami melaksanakan navigasi halaman dan penukaran laluan dalam aplikasi Vue. Ciri Lazy-Loading ialah kelebihan unik VueRouter, yang boleh mengoptimumkan prestasi halaman dengan sangat baik. Dalam artikel ini, kami akan memperkenalkan ciri penghalaan Lazy-Loading VueRouter dan menyediakan beberapa contoh kod praktikal untuk mengoptimumkan prestasi halaman. Lazy-Loading bermaksud apabila diperlukan

Penyelesaian untuk bertindak balas penghala tidak dipaparkan: 1. Tambahkan browserRouter ke komponen penghalaan induk untuk membalut penghala 2. Gunakan "this.props.history.go()" untuk memuat semula komponen; 3. Tambahkan "forcerefresh" pada parameter browser; ={true}"; 4. Tulis fungsi cangkuk dalam "<Laluan>" dan panggilnya apabila meninggalkan atau memasuki laluan ini.

VueRouter ialah pengurus laluan rasmi dalam rangka kerja Vue.js. Ia membolehkan pembangun menukar kandungan halaman melalui pemetaan laluan, menjadikan aplikasi satu halaman lebih terkawal dan lebih mudah untuk diselenggara. Walau bagaimanapun, apabila aplikasi menjadi lebih kompleks, pemuatan dan penghuraian laluan boleh menjadi kesesakan prestasi. Untuk menyelesaikan masalah ini, VueRouter menyediakan fungsi pemuatan malas laluan, yang menangguhkan pemuatan laluan sehingga benar-benar diperlukan. Lazy-loading adalah teknologi pemuatan yang
