隨著行動裝置應用的普及,豐富多彩的動態效果成為了許多應用開發的必備要素。其中,轉場動畫就是提升使用者使用體驗的重要手段。在uniapp這個跨平台應用程式開發框架中,實作轉場動畫也非常簡單易行。
uniapp中的轉場動畫可以分為兩類:原生轉場和自訂轉場。原生轉場就是系統預設的轉場效果,而自訂轉場則可以依照自己的需求進行客製化。
一、原生轉場動畫
uniapp中原生轉場動畫的實作非常簡單,只需要在pages.json
設定檔中加入"animationType "
屬性即可。以下是幾種常見的轉場動畫效果:
- Push
在A頁面中透過uni.navigateTo
跳到B頁面時,可以設定轉場動畫為Push:
uni.navigateTo({ url: '/pages/b-page/b-page', animationType: 'push', animationDuration: 500 });
效果如下:
- #Pop
uni.navigateBack回到A頁面時,可以設定轉場動畫為Pop:
uni.navigateBack({ animationType: 'pop', animationDuration: 500 });效果如下:
Fade
可以設定轉場動畫為漸隱漸現的Fade效果:uni.navigateTo({ url: '/pages/b-page/b-page', animationType: 'fade', animationDuration: 500 });

None
- 效果如下:
uni.navigateTo({ url: '/pages/b-page/b-page', animationType: 'none', animationDuration: 500 });
# #二、自訂轉場動畫
uniapp中的自訂轉場動畫需要結合
uni-app-plus外掛程式和
vue-router
- 安裝uni-app-plus外掛
uni-app-plus外掛程式可以讓我們在uniapp中使用原生的一些API和插件,其中就包含iOS中
UIKit
android.view。因此,在使用自訂轉場動畫時,我們需要使用這個插件。
- 修改vue-router設定
npm install uni-app-plus --save-dev
首先,我們需要在
router .js設定檔中新增路由守衛,這樣我們才能捕捉到從A頁面跳到B頁面的事件,從而實現自訂轉場動畫。
const router = new VueRouter({ mode: 'history', base: process.env.BASE_URL, routes }); router.beforeEach((to, from, next) => { if (to.meta.animation === 'custom') { const pages = getCurrentPages(); const currentPage = pages[pages.length - 1]; const prevPage = pages[pages.length - 2]; currentPage.animation = 'slide-left'; prevPage.animation = 'slide-right'; } next(); }); export default router;在這段程式碼中,我們新增了一個路由守衛
beforeEach
#,當跳到的頁面配置了自訂轉場動畫時,就將目前頁面和上一個頁面的動畫效果設定為左滑和右滑,這樣就可以實現自訂轉場動畫了。- 實作自訂轉場動畫
-
在
App.vue - 檔案中,我們可以透過監聽頁面切換事件來實現自訂轉場動畫。首先,我們在
mounted
生命週期中加入以下程式碼:<pre class='brush:php;toolbar:false;'>mounted() { if (uni.getSystemInfoSync().platform === 'ios') { const router = this.$router; router.beforeEach(function(to, from, next) { if (from.meta.animation === 'custom') { UniViewJSBridge.publishHandler('animation', { type: 'set', pageParam: { animationEnabled: true } }, function() { router.app.animation = uni.createFromIconfontCN({ scriptUrl: "//at.alicdn.com/t/font_2581006_ourmsf7tpoi.js" }).css({ animationDuration: '0.4s', animationTimingFunction: 'ease-in' }).toStyle(); next(); }) } else { router.app.animation = ''; next(); } }); UniViewJSBridge.subscribeHandler('animation', function(dat) { if (dat.type === 'finish') { router.app.animation = ''; } }); } },</pre>
以上程式碼主要實現了以下功能:
偵測目前裝置是否為iOS裝置(因為Android裝置預設支援自訂轉場動畫),如果是則執行下列步驟。如果不是,則直接跳過本流程。 在路由變更之前透過
傳送訊息給原生,告訴它需要開啟動畫。 監聽
傳送的訊息,當原生的動畫執行結束後,將router.app.animation
賦為空字串,代表動畫效果已經結束。
然後,在
標籤中加入以下程式碼:
<view :class="{ 'animated': animation }">
<router-view class="page"></router-view>
</view>
animate.css
來實現動畫效果,因此需要在頁面中引入:<link rel="stylesheet" href="//cdn.bootcss.com/animate.css/3.5.2/animate.min.css">最後,在
<script><code>標籤中添加以下程式碼:<pre class='brush:php;toolbar:false;'>data() { return { animation: '' }; },</pre><code>在進入A頁面前,將transType</script>
設定為###"custom"###即可:###uni.navigateTo({ url: '/pages/b-page/b-page', animationType: 'pop', animationDuration: 500, events: { finish: () => { console.log('finish'); } }, complete: () => { setTimeout(() => { this.animation = ''; }, 500); }, fail: () => { console.log('fail'); }, transType: 'custom' });###這樣,我們就完成了自訂轉場動畫的完整流程。在實際開發中,你也可以根據自己的需求來定義動畫類型和動畫效果。 ######總結######在uniapp中,實現轉場動畫非常簡單,我們可以使用原生的轉場動畫,也可以透過結合###uni-app-plus###外掛程式和###vue-router###路由元件來實作自訂轉場動畫。在開發過程中,我們要根據實際需求選擇不同的轉場動畫效果,以提升使用者的使用體驗。 ###
以上是uniapp轉場動畫怎麼做的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文詳細介紹了Uni-App的本地存儲API(uni.setStorageSync(),uni.getStorageSync()及其異步對應物),強調了使用描述鍵,限制數據大小和處理JSON分析等最佳實踐。 它強調了

本文詳細介紹了在Uniapp中重命名下載文件的解決方法,缺乏直接的API支持。 Android/iOS需要本機插件進行下載後重命名,而H5解決方案僅限於建議文件名。 該過程涉及暫時

本文介紹了Uniapp下載中編碼問題的文件。 它強調了服務器端內容類型標頭的重要性,並使用JavaScript的TextDecoder來基於這些標頭進行客戶端解碼。 通用概率的解決方案

本文詳細介紹了Uni-App的地理位置API,重點介紹了Uni.getLocation()。 它解決了常見的陷阱,例如不正確的坐標系(GCJ02 vs. WGS84)和權限問題。 通過平均讀數和處理來提高位置精度

本文比較了Uni-App中國家管理的Vuex和Pinia。 它詳細介紹了他們的功能,實現和最佳實踐,突出了Pinia的簡單性與Vuex的結構。 選擇取決於項目複雜性,Pinia Suita

本文使用Uni.Request或Axios詳細介紹了Uni-App中的API請求。 它涵蓋處理JSON響應,最佳安全實踐(HTTPS,身份驗證,輸入驗證),故障排除故障(網絡問題,CORS,S

本文詳細介紹瞭如何使用uni.share API將社交共享整合到Uni-App項目中,涵蓋了跨微信和微博等平台的設置,配置和測試。

本文解釋了Uni-App的EasyCom功能,即自動化組件註冊。 它詳細介紹了配置,包括Autoscan和自定義組件映射,突出了諸如降低的樣板,提高速度和增強的可讀性等好處。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Linux新版
SublimeText3 Linux最新版

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

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具