UniApp是一款基于Vue.js開發(fā)的跨平臺開發(fā)框架,可以幫助開發(fā)者快速構建跨平臺應用。在UniApp中,路由跳轉動畫是一個常見的需求,本文將介紹如何在UniApp中實現(xiàn)路由跳轉動畫,并提供具體的代碼示例。
UniApp提供了多種路由跳轉的方式,包括navigateTo、redirectTo、switchTab等。不同的跳轉方式可能會有不同的動畫效果,我們可以根據(jù)需求選擇合適的跳轉方式來實現(xiàn)動畫效果。
下面以navigateTo為例,介紹如何在UniApp中實現(xiàn)路由跳轉動畫。
首先,在App.vue中配置一個全局的動畫樣式,在頁面跳轉時統(tǒng)一調用該樣式。可以在App.vue的c9ccee2e6ea535a969eb3f532ad9fe89中添加以下代碼:
.page-enter { opacity: 0; transform: translateX(100%); } .page-enter-active { opacity: 1; transform: translateX(0); transition: all 0.3s; } .page-leave { opacity: 1; transform: translateX(0); } .page-leave-active { opacity: 0; transform: translateX(-100%); transition: all 0.3s; }
登錄后復制
上述代碼中,.page-enter是頁面進入動畫的起始樣式,.page-enter-active是頁面進入動畫的結束樣式;.page-leave是頁面離開動畫的起始樣式,.page-leave-active是頁面離開動畫的結束樣式。
接下來,在需要跳轉的頁面中,使用Vue的<transition>組件包裹需要跳轉的內(nèi)容,在其中添加動畫的class。
假設我們有一個頁面叫做detail.vue,其內(nèi)容如下:
<template> <view> <button @click="jumpToHome">跳轉到Home頁</button> </view> </template> <script> export default { methods: { jumpToHome() { uni.navigateTo({ url: '/pages/home/home', success: () => { // 跳轉成功后觸發(fā)動畫 uni.$emit('page-enter'); } }); } } }; </script> <style scoped> .page-enter { opacity: 0; transform: translateX(100%); } .page-enter-active { opacity: 1; transform: translateX(0); transition: all 0.3s; } .page-leave { opacity: 1; transform: translateX(0); } .page-leave-active { opacity: 0; transform: translateX(-100%); transition: all 0.3s; } </style>
登錄后復制
上述代碼中,我們在按鈕的點擊事件中通過uni.navigateTo跳轉到Home頁,并在跳轉成功后觸發(fā)動畫。為了實現(xiàn)動畫效果,我們在按鈕的頁面中也添加了動畫的樣式。
在Home頁的home.vue中,我們也需要添加動畫樣式,并在頁面加載時觸發(fā)動畫。
<template> <transition name="page"> <view> <text>這是Home頁</text> </view> </transition> </template> <script> export default { mounted() { // 頁面加載完成后觸發(fā)動畫 uni.$emit('page-enter'); } }; </script> <style scoped> .page-enter { opacity: 0; transform: translateX(100%); } .page-enter-active { opacity: 1; transform: translateX(0); transition: all 0.3s; } .page-leave { opacity: 1; transform: translateX(0); } .page-leave-active { opacity: 0; transform: translateX(-100%); transition: all 0.3s; } </style>
登錄后復制
上述代碼中,我們在Home頁的mounted生命周期鉤子函數(shù)中觸發(fā)了動畫效果。
通過以上配置,我們可以實現(xiàn)在UniApp中頁面跳轉時的動畫效果。當點擊跳轉按鈕時,當前頁面會向右滑動并漸變消失,同時新頁面會從右側滑入并漸變出現(xiàn),給用戶一種流暢的跳轉體驗。
需要注意的是,在實際項目中,可以根據(jù)需求自行配置動畫效果,如改變動畫的方向、時間、緩動函數(shù)等。另外,UniApp還提供了其他路由跳轉方式和動畫配置接口,開發(fā)者可以根據(jù)自己的需求來選擇合適的方式實現(xiàn)路由跳轉動畫。
參考文檔:https://uniapp.dcloud.io/api/router?id=navigateto