2018-07-09 微信小程序之動(dòng)畫編碼體驗(yàn)

????這一周工作主要圍繞了微信小程序的動(dòng)畫效果展開得湘,微信小程序的動(dòng)畫實(shí)際上是對(duì)原生的css3動(dòng)畫進(jìn)行了一層封裝瞧毙,所以其動(dòng)畫類型是與css類似的有惯裕,包括透明度變化,背景變化撞牢,寬高變化在內(nèi)的樣式變幻率碾,旋轉(zhuǎn)變幻,縮放變幻屋彪,矩陣變換等所宰。具體的API可參見微信小程序文檔https://developers.weixin.qq.com/miniprogram/dev/api/api-animation.html#wxcreateanimationobject其使用方式也感覺與css3動(dòng)畫異曲同工,不過首先需要初始化一個(gè)微信動(dòng)畫對(duì)象:

?????????this.favBlink = wx.createAnimation({?

????????????duration: 800, timingFunction: 'ease-in',?

????????})

????然后要像css3一樣初始化動(dòng)畫畜挥,設(shè)計(jì)動(dòng)畫的內(nèi)容仔粥,使用API進(jìn)行選擇器的相應(yīng)變幻:

?????????this.favBlink.opacity(1).translateY(-10).step()?

? ? ? ?? this.favBlink.opacity(0).step()?

? ? ? ?? this.favBlink.translateY(10).step()

????注意這里的step方法,step方法是微信小程序用來設(shè)定動(dòng)畫執(zhí)行的函數(shù)蟹但,如上躯泰,每一個(gè)step代表一個(gè)執(zhí)行步驟,進(jìn)行鏈?zhǔn)秸{(diào)用的一個(gè)step內(nèi)的內(nèi)容將同步執(zhí)行华糖,在不同step中的內(nèi)容將分布執(zhí)行麦向。但是這也是相對(duì)的,什么意思呢缅阳?比如旋轉(zhuǎn)變幻,如果將兩個(gè)相反方向的動(dòng)畫同步執(zhí)行景描,那么它只會(huì)呈現(xiàn)第二個(gè)十办,當(dāng)然這也可以理解為一種同步執(zhí)行。另外超棺,這樣的同步還和所設(shè)置的duration有關(guān)向族,如果duration過短,那么在這個(gè)時(shí)間段內(nèi)可能就沒有辦法執(zhí)行完成相應(yīng)的動(dòng)畫棠绘,在微信小程序中它的處理在視覺上感覺就會(huì)省略動(dòng)畫件相,比如旋轉(zhuǎn),即使你分step寫了多次旋轉(zhuǎn)氧苍,它在不夠充足的時(shí)間內(nèi)夜矗,可能也只會(huì)呈現(xiàn)一次旋轉(zhuǎn)。

????最后就是要將動(dòng)畫效果與相應(yīng)dom綁定让虐,在dom中使用animation屬性動(dòng)態(tài)綁定一個(gè)變量紊撕,animation="{{xxx}}",然后在js中將這個(gè)屬性用export實(shí)例化:?

??????????this.setData({?

????????????wordAnimation: this.favBlink.export()?

? ? ? ? ?? })

? ? ? 一個(gè)先出現(xiàn)向上移動(dòng)赡突,然后再消失緩慢向下的動(dòng)畫就完成了对扶。

? ? ?? 這里對(duì)于微信的動(dòng)畫起始狀態(tài)與終止?fàn)顟B(tài)的變化與選定区赵,其實(shí)還有一些疑問。在實(shí)際的編碼中經(jīng)常遇到這樣的問題浪南,當(dāng)我們完成一段動(dòng)畫的時(shí)候笼才,在一段時(shí)間后需要繼續(xù)在相同的dom上開始動(dòng)畫,就會(huì)出現(xiàn)很多詭異的不在預(yù)料之內(nèi)的動(dòng)畫络凿,比較突出的是如下的一些情形:?

????????1.在一個(gè)dom之上執(zhí)行了rotateY結(jié)合tanslate3d的動(dòng)畫骡送,將其使用opacity隱藏(整體執(zhí)行的是一種類似于向左翻頁的動(dòng)畫)。再次顯示希望其執(zhí)行向右翻回上一頁的動(dòng)畫喷众,此時(shí)再顯示的時(shí)候(注意這里并沒有使用過display:none各谚,而只是使用opacity:0隱藏了),該dom只保存了rotate(30)而沒有保留translate的偏移(至少視覺上是這樣到千,這個(gè)錯(cuò)誤比較久昌渤,無法復(fù)現(xiàn))。?

????????2.同樣的憔四,對(duì)一個(gè)文字執(zhí)行了一個(gè)向上平移的translate動(dòng)畫并且加上opacity:1膀息,然后將其隱藏,這次使用的是wx:if隱藏了赵,這次是徹底在dom中消失潜支,但是再次出現(xiàn)的時(shí)候,它保留了translate后的位置

?????這種起始狀態(tài)與終止?fàn)顟B(tài)的模棱兩可在開發(fā)中讓人很疑惑柿汛,不知道是我理解的不到位還是本身優(yōu)化的不夠流暢冗酿,微信小程序在處理簡(jiǎn)單的動(dòng)畫的時(shí)候,流暢到可以與原生近似络断,但是感覺當(dāng)動(dòng)畫復(fù)雜起來的時(shí)候裁替,感覺就沒有理想的那么流暢了。而處理這種初始狀態(tài)與終止?fàn)顟B(tài)的混亂問題貌笨,我只好每次執(zhí)行完動(dòng)畫之后都再手動(dòng)設(shè)置dom的位置弱判,并且清除動(dòng)畫,這樣雖然感覺麻煩許多锥惋,但是是相對(duì)比較穩(wěn)妥的做法昌腰。?

????????setTimeout(() => {?

????????????this.beginRotateAnimation = false?

????????????this.setData({?

????????????????backPanelChange: null,?

????????????????frontPanelChange: null,?

????????}) }, 1000);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市膀跌,隨后出現(xiàn)的幾起案子遭商,更是在濱河造成了極大的恐慌,老刑警劉巖捅伤,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件株婴,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)困介,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門大审,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人座哩,你說我怎么就攤上這事徒扶。” “怎么了根穷?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵姜骡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我屿良,道長(zhǎng)圈澈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任尘惧,我火速辦了婚禮康栈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喷橙。我一直安慰自己啥么,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布贰逾。 她就那樣靜靜地躺著悬荣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疙剑。 梳的紋絲不亂的頭發(fā)上氯迂,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音言缤,去河邊找鬼嚼蚀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛轧简,可吹牛的內(nèi)容都是我干的驰坊。 我是一名探鬼主播匾二,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼哮独,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了察藐?” 一聲冷哼從身側(cè)響起皮璧,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎分飞,沒想到半個(gè)月后悴务,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年讯檐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了羡疗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡别洪,死狀恐怖叨恨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情挖垛,我是刑警寧澤痒钝,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站痢毒,受9級(jí)特大地震影響送矩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哪替,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一栋荸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧夷家,春花似錦蒸其、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至义屏,卻和暖如春靠汁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背闽铐。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工蝶怔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人兄墅。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓踢星,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親隙咸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沐悦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

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