如何在Ionic3應(yīng)用程序中實(shí)現(xiàn)自定義頁(yè)面過(guò)渡

Ionic是編寫(xiě)自己的應(yīng)用程序的絕佳框架惯殊。它基于Cordova和angular挨决,使您能夠快速編寫(xiě)外觀漂亮的應(yīng)用程序而無(wú)需太多精力。

根據(jù)您用來(lái)啟動(dòng)應(yīng)用程序的平臺(tái),Ionic甚至還帶有預(yù)定義的頁(yè)面過(guò)渡兔沃,以便將一個(gè)頁(yè)面的導(dǎo)航設(shè)置為另一個(gè)頁(yè)面根灯。iOS上的標(biāo)準(zhǔn)頁(yè)面轉(zhuǎn)換是從左側(cè)或右側(cè)滑動(dòng)逻谦。它看起來(lái)像這樣:


然而,Ionic頁(yè)面轉(zhuǎn)換的文檔非常令人困惑史汗,作為一個(gè)初學(xué)者饮焦,需要一些時(shí)間來(lái)了解哪些轉(zhuǎn)換應(yīng)該使用哪些轉(zhuǎn)換怕吴。官方文檔包含NativePageTransitions模塊的頁(yè)面,但我建議您不要使用它县踢。它不僅長(zhǎng)時(shí)間沒(méi)有收到任何更新转绷,而且為了制作動(dòng)畫(huà),模塊會(huì)截取起始頁(yè)和著陸頁(yè)的截圖硼啤,并為兩個(gè)圖像設(shè)置動(dòng)畫(huà)议经。這似乎是一種奇怪的方式來(lái)做到這一點(diǎn),而未解決問(wèn)題的公開(kāi)問(wèn)題的數(shù)量說(shuō)明了一切谴返。

您應(yīng)該使用的是Ionic NavController類(lèi)的集成功能煞肾,您已經(jīng)使用它來(lái)在頁(yè)面之間導(dǎo)航。默認(rèn)情況下啟用此功能(取決于平臺(tái))亏镰,但也可以使用導(dǎo)航呼叫進(jìn)行配置:

this.navCtrl.push(MyPageComponent, null, {animate: true, animation: "transition"});?

使用“animate:true”可以打開(kāi)動(dòng)畫(huà)(這是標(biāo)準(zhǔn)設(shè)置)扯旷,“animation:transition”設(shè)置用于動(dòng)畫(huà)頁(yè)面過(guò)渡的動(dòng)畫(huà)。它的字符串和“轉(zhuǎn)換”意味著根據(jù)當(dāng)前平臺(tái)使用標(biāo)準(zhǔn)轉(zhuǎn)換索抓。當(dāng)你想在Android平臺(tái)上使用iOS轉(zhuǎn)換時(shí)钧忽,你可以像這樣啟動(dòng)導(dǎo)航:

this.navCtrl.push(MyPageComponent, null, {animate: true, animation: "transition-ios"});?

沒(méi)有其他可以使用的內(nèi)置轉(zhuǎn)換(如向下滑動(dòng),向上滑動(dòng)或向外擴(kuò)展)逼肯,我完全沒(méi)有找到如何實(shí)現(xiàn)自定義轉(zhuǎn)換的官方文檔耸黑。但是,有一種準(zhǔn)官方的方式來(lái)實(shí)現(xiàn)您自己的過(guò)渡篮幢。

您可以像實(shí)現(xiàn)官方轉(zhuǎn)換一樣實(shí)現(xiàn)自己的轉(zhuǎn)換類(lèi):編寫(xiě)擴(kuò)展“ionic-angular / PageTransition”類(lèi)的自己的轉(zhuǎn)換類(lèi)大刊,并在離子運(yùn)行時(shí)注冊(cè)新的轉(zhuǎn)換。

最基本的轉(zhuǎn)換如下所示:

import{NgModule} from "@angular/core";

import{Config, IonicApp, PageTransition} from "ionic-angular";

import{MyApp} from "./app.component";


@NgModule({

????declarations: [MyApp],

????imports: [...],

????bootstrap: [IonicApp],

????entryComponents: [MyApp,...],

????providers: [...]

})

exportclassAppModule {

????constructor(privateconfig: Config) {

????????this.config.setTransition("emptyTransition", EmptyTransition)

????}

}


exportclassEmptyTransition extendsPageTransition?{

????init() {

????????//here would be the implementation of your own page transition

????}

}

當(dāng)您查看iOS頁(yè)面轉(zhuǎn)換官方實(shí)現(xiàn)時(shí)三椿,您可以看到您可以使用ionic-angular提供的Animation類(lèi)定義進(jìn)入和離開(kāi)頁(yè)面的動(dòng)畫(huà)缺菌。由于沒(méi)有文檔我不得不使用試驗(yàn)和錯(cuò)誤如何找出如何使用這個(gè)類(lèi)。

在搞砸了一段時(shí)間之后搜锰,我遇到了一些我自己的頁(yè)面轉(zhuǎn)換:“滑動(dòng)”和“向下滑動(dòng)”伴郁。

SlideTransition是一個(gè)左/右滑動(dòng)過(guò)渡,類(lèi)似于官方的“transition-ios”蛋叼,但它動(dòng)畫(huà)整個(gè)頁(yè)面內(nèi)容而不僅僅是內(nèi)容焊傅,而頁(yè)眉和頁(yè)腳元素保持固定剂陡。


然而,SlideDownTransition有點(diǎn)不同狐胎。它會(huì)向下滑動(dòng)離開(kāi)的頁(yè)面內(nèi)容鸭栖,并在執(zhí)行此操作時(shí)顯示輸入的頁(yè)面內(nèi)容。


SlideTransition經(jīng)過(guò)測(cè)試握巢,可以在向前和向后轉(zhuǎn)換中工作(想想:Android后退按鈕)晕鹊。SlideDownTransition可能不起作用,但我沒(méi)有測(cè)試它镜粤,因?yàn)槲业挠美恍枰ぷ鳌?/p>

令人討厭的是捏题,官方轉(zhuǎn)換是手動(dòng)控制標(biāo)題組件中標(biāo)準(zhǔn)后退按鈕的可見(jiàn)性玻褪。我不明白為什么這是在頁(yè)面轉(zhuǎn)換中完成而不是某種后退按鈕組件肉渴。因此,我放棄了在我的應(yīng)用程序中使用官方后退按鈕带射,并在需要時(shí)始終使用我自己的按鈕(情況并非總是如此)同规。因此,上述頁(yè)面轉(zhuǎn)換的實(shí)現(xiàn)并不關(guān)心后退按鈕的可見(jiàn)性窟社,因此標(biāo)準(zhǔn)后退按鈕始終是不可見(jiàn)的券勺。

使用Ionic Animation類(lèi),您可以定義一些開(kāi)始和結(jié)束樣式灿里,然后在離子頁(yè)面的頁(yè)面元素上設(shè)置关炼。樣式是我們眾所周知的CSS樣式,不使用BrowserAnimationsModule提供的角度動(dòng)畫(huà)功能匣吊。實(shí)現(xiàn)轉(zhuǎn)換相對(duì)簡(jiǎn)單儒拂,因?yàn)槟梢哉{(diào)整之前在Web應(yīng)用程序中使用的眾所周知的轉(zhuǎn)換的大部分代碼。

但是色鸳,我希望Ionic團(tuán)隊(duì)至少有一些關(guān)于此功能的官方文檔社痛。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市命雀,隨后出現(xiàn)的幾起案子蒜哀,更是在濱河造成了極大的恐慌,老刑警劉巖吏砂,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撵儿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡狐血,警方通過(guò)查閱死者的電腦和手機(jī)淀歇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)氛雪,“玉大人房匆,你說(shuō)我怎么就攤上這事。” “怎么了浴鸿?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵井氢,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我岳链,道長(zhǎng)花竞,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任掸哑,我火速辦了婚禮约急,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘苗分。我一直安慰自己厌蔽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布摔癣。 她就那樣靜靜地躺著奴饮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪择浊。 梳的紋絲不亂的頭發(fā)上戴卜,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音琢岩,去河邊找鬼投剥。 笑死,一個(gè)胖子當(dāng)著我的面吹牛担孔,可吹牛的內(nèi)容都是我干的江锨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼攒磨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼泳桦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起娩缰,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤灸撰,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后拼坎,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體浮毯,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年泰鸡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了债蓝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盛龄,死狀恐怖饰迹,靈堂內(nèi)的尸體忽然破棺而出芳誓,到底是詐尸還是另有隱情,我是刑警寧澤啊鸭,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布锹淌,位于F島的核電站,受9級(jí)特大地震影響赠制,放射性物質(zhì)發(fā)生泄漏赂摆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一钟些、第九天 我趴在偏房一處隱蔽的房頂上張望烟号。 院中可真熱鬧,春花似錦政恍、人聲如沸汪拥。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)喷楣。三九已至趟大,卻和暖如春鹤树,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逊朽。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工罕伯, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人叽讳。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓追他,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親岛蚤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子邑狸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件涤妒、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,109評(píng)論 4 62
  • 剛剛在抖音刷到這樣一個(gè)視頻:題主去朋友家吃飯单雾,朋友的弟弟在用門(mén)夾核桃給題主吃。弟弟個(gè)子不高她紫,略微有些駝背硅堆,看起來(lái)行...
    珠江漁民閱讀 138評(píng)論 0 0
  • 揮別漸行漸遠(yuǎn)的2016年,有笑有淚贿讹,有遺憾渐逃,有期待∶窆樱回首2016年我的關(guān)鍵詞:感恩茄菊、惜福疯潭、糾結(jié)、停滯面殖。 一袁勺、感恩 ...
    逆風(fēng)飛行83閱讀 295評(píng)論 0 0
  • 以前夢(mèng)見(jiàn)失去你期丰,夢(mèng)醒后心里很害怕,會(huì)馬上打電話給你吃挑,聽(tīng)聽(tīng)你的聲音钝荡,聽(tīng)見(jiàn)你沒(méi)什么事情、好好的消息舶衬,才能安撫住那害怕的...
  • 寶貝今天的5分鐘 每天哄寶貝睡覺(jué)都是重要且艱巨的任務(wù)埠通,么么么,所以都要想好久逛犹,想著就硬了端辱,然后又忍不住意淫,嘿嘿虽画,...
    握著荊條閱讀 152評(píng)論 0 0