微信小程序動畫組件使用解析,類似vue,且更強大
更新時間:2019年08月01日 11:21:31 作者:心之所向_16a2
這篇文章主要介紹了微信小程序動畫組件,類似vue,且更強大使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
演示
演示1
演示2
演示3
一、功能描述
1、預設過渡
- 支持區(qū)分enter、leave
- 支持預設過渡的組合
- 特別強調:支持元素展開、閉合的過渡。name=='slide'或['slide'[,]],即可實現(xiàn),無需外部傳height
- 支持外部傳類來過渡或動畫
/* 預留過渡 */ /** *1、fade *2、移動:up,right,down,left四個方向 *3、scale縮放:默認是從0->1,還預設了一個從1->1.2的 *4、rotate旋轉。順時針旋轉。角度用以上方向來指示。如果逆時針中間加上reserve。 如rotate-right表示選擇180度,rotate-down-reserve表示逆時針旋轉90度。 預設了,90,180,270,360;-90.-180,-270,-360角度的旋轉 *5、slide:內容塊張開還是隱藏。 √ *說明:以上是整體過渡的單元:傳name的時候,可以多個組合,形成更加復雜的過渡。 *如果這些組合,還不夠你的使用,可以部分或全部過渡通過外部傳類來實現(xiàn)。 */
2、蒙層相關功能
- 無蒙層:mask:0。//此時過渡元素為卡槽
- 透明蒙層1:mask:1。//此時過渡元素為卡槽。如:左移100%,只是移動卡槽寬度的100%
- 透明蒙層2:mask:2。//此時過渡元素為蒙層。如:左移100%,則是移動蒙層寬度的100%
- 半透明蒙層3:mask:3。///此時過渡元素為蒙層。如:彈窗上移,則是蒙層上移。
- 半透明蒙層4:mask:4。///此時過渡元素為卡槽。如:彈窗上移,則是蒙層自身是縮放。卡槽上移
3、卡槽樣式完美設置
- 由以上可知。蒙層由多種情況。但
- 完美支持百分比設置:外部傳custom-class即可
4、其它細節(jié)
- 完美支持自定義top、tab導航情況
- 蒙層(包括透明蒙層)下,預設5個布局位置:結合方向等,可實現(xiàn)左右抽屜、上下彈出、中間淡入淡出等效果
- 支持leave動畫結束后,通知父節(jié)點:可實現(xiàn)多節(jié)點聯(lián)動。如:手風琴效果
5、支持所有的節(jié)點。包括組件作為卡槽內容
- 對需要動畫的元素/組件套上這個組件即可實現(xiàn)過渡動畫
- 其實整個小程序頁面做進入過渡,也挺炫酷的。類似支付寶頁面進螞蟻森林
二、可傳屬性(可配置項)
過渡相關類
externalClasses: [ 'enter-class', 'enter-active-class', 'enter-to-class', 'leave-class', 'leave-active-class', 'leave-to-class', ],
內容(卡槽)樣式
externalClasses:[ 'custom-class', ]
說明:完美支持像素、百分比、或者absolute的設置
配置項
properties: { name: { type: [String,Object,Array],//支持區(qū)分enter、leave過渡 value:{ enter:{ type:[String,Array], value:['up','fade'],//支持傳數(shù)組,即內設的過渡,可組合 }, leave:"fade" } }, show: { type: Boolean, value: false }, duration: { //run Time ms type: [String,Number,Object],//`過渡時間,支持區(qū)分enter、leave。如果enter不需要過渡,enter:0即可` value:{ enter:300, leave:300, } }, //leave過渡之后狀態(tài)是否保留。而不是display:none //帶有mask,避免影響頁面操作。這邊強制禁止保留狀態(tài)。適用于非mask的情況。mask:0和1、2(1、2是全透明的,設置了屬性雖然不會影響頁面操作。建議不宜保留) retain:{ type:Boolean, value:false }, mask: { //`支持選蒙層類型:預設5中類型` 以下四個個是配套的,針對mask的配置 type: [String,Number],//如果為0,表示沒有蒙層。1、2:全透明蒙層 value: '0', }, //頂部的margin。如果沒有自定義navBar或tabBar則,fixed區(qū)域為中間的可視區(qū)域。否則為中間可視區(qū)域+自定義bar區(qū)域。 //因此為了兼容,如果自定義了bar,則要傳值進來修正蒙層的區(qū)域。 margin:{//記得帶上單位哦。 type: Object, value:{ top:'0px', bottom:'0px',} }, position: { //`支持卡槽位置:top、right、bottom、left、center`如果有mask,則mask中的卡槽位置是哪里。如果要再偏移,則外部卡槽使用margin來實現(xiàn)即可 type: String, value: "right", }, close: { //如果有mask,點擊Mask是否關閉蒙層 type: Boolean, value: false }
三、完整代碼(demo)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關文章
Javascript中replace方法與正則表達式的結合使用教程
replace方法是javascript涉及到正則表達式中較為復雜的一個方法,嚴格上說應該是string對象的方法,下面這篇文章主要給大家介紹了關于Javascript中replace方法與正則表達式的結合使用的相關資料,需要的朋友可以參考下2022-09-09引入autocomplete組件時JS報未結束字符串常量錯誤
在引入jQuery的autocomplete組件時,遇到js報未結束字符串常量錯誤,原因及解決方法如下,大家可以參考下2014-03-03JS forEach跳出循環(huán)2種實現(xiàn)方法
這篇文章主要介紹了JS forEach跳出循環(huán)2種實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06