微信小程序动画组件使用解析,类似vue,且更强大


Posted in Javascript onAugust 01, 2019

演示

演示1

微信小程序动画组件使用解析,类似vue,且更强大

演示2

微信小程序动画组件使用解析,类似vue,且更强大

演示3

微信小程序动画组件使用解析,类似vue,且更强大 

一、功能描述

1、预设过渡

  • 支持区分enter、leave
  • 支持预设过渡的组合
  • 特别强调:支持元素展开、闭合的过渡。name=='slide'或['slide'[,]],即可实现,无需外部传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的时候,可以多个组合,形成更加复杂的过渡。
*如果这些组合,还不够你的使用,可以部分或全部过渡通过外部传类来实现。
*/

2、蒙层相关功能

  • 无蒙层:mask:0。//此时过渡元素为卡槽
  • 透明蒙层1:mask:1。//此时过渡元素为卡槽。如:左移100%,只是移动卡槽宽度的100%
  • 透明蒙层2:mask:2。//此时过渡元素为蒙层。如:左移100%,则是移动蒙层宽度的100%
  • 半透明蒙层3:mask:3。///此时过渡元素为蒙层。如:弹窗上移,则是蒙层上移。
  • 半透明蒙层4:mask:4。///此时过渡元素为卡槽。如:弹窗上移,则是蒙层自身是缩放。卡槽上移

3、卡槽样式完美设置

  • 由以上可知。蒙层由多种情况。但
  • 完美支持百分比设置:外部传custom-class即可

4、其它细节

  • 完美支持自定义top、tab导航情况
  • 蒙层(包括透明蒙层)下,预设5个布局位置:结合方向等,可实现左右抽屉、上下弹出、中间淡入淡出等效果
  • 支持leave动画结束后,通知父节点:可实现多节点联动。如:手风琴效果

5、支持所有的节点。包括组件作为卡槽内容

  • 对需要动画的元素/组件套上这个组件即可实现过渡动画
  • 其实整个小程序页面做进入过渡,也挺炫酷的。类似支付宝页面进蚂蚁森林

二、可传属性(可配置项)

过渡相关类

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],//支持区分enter、leave过渡
value:{
enter:{
type:[String,Array],
value:['up','fade'],//支持传数组,即内设的过渡,可组合
},
leave:"fade"
 }
},
show: {
 type: Boolean,
 value: false
},
duration: { //run Time ms
 type: [String,Number,Object],//`过渡时间,支持区分enter、leave。如果enter不需要过渡,enter:0即可`
 value:{
  enter:300,
  leave:300,
 }
},
//leave过渡之后状态是否保留。而不是display:none
//带有mask,避免影响页面操作。这边强制禁止保留状态。适用于非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区域为中间的可视区域。否则为中间可视区域+自定义bar区域。
//因此为了兼容,如果自定义了bar,则要传值进来修正蒙层的区域。
margin:{//记得带上单位哦。
 type: Object,
 value:{
  top:'0px',
  bottom:'0px',}
},
position: { //`支持卡槽位置:top、right、bottom、left、center`如果有mask,则mask中的卡槽位置是哪里。如果要再偏移,则外部卡槽使用margin来实现即可
 type: String,
 value: "right",
},
close: { //如果有mask,点击Mask是否关闭蒙层
 type: Boolean,
 value: false
}

三、完整代码(demo)

git代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Tab页界面 用jQuery及Ajax技术实现(php后台)
Oct 12 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
Jul 09 Javascript
javascript实现博客园页面右下角返回顶部按钮
Feb 22 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
May 07 Javascript
jQuery UI Grid 模态框中的表格实例代码
Apr 01 jQuery
微信小程序中的swiper组件详解
Apr 14 Javascript
微信小程序图片自适应支持多图实例详解
Jun 21 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
Dec 08 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
Aug 10 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
Oct 29 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 jQuery
JavaScript实现复选框全选功能
Apr 11 Javascript
vue项目中全局引入1个.scss文件的问题解决
Aug 01 #Javascript
jQuery中DOM操作原则实例分析
Aug 01 #jQuery
详解package.json版本号规则
Aug 01 #Javascript
ES6 新增的创建数组的方法(小结)
Aug 01 #Javascript
详解基于Wepy开发小程序插件(推荐)
Aug 01 #Javascript
深入浅析Vue中mixin和extend的区别和使用场景
Aug 01 #Javascript
在Vue环境下利用worker运行interval计时器的步骤
Aug 01 #Javascript
You might like
php操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
PHP里的单例类写法实例
2015/06/25 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
js 提交和设置表单的值
2008/12/19 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
2014/06/10 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
jQuery检查元素存在性(推荐)
2016/09/17 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
Javascript快速实现浏览器系统通知
2017/08/26 Javascript
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
Angular8基础应用之表单及其验证
2019/08/11 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
jQuery实现简单日历效果
2020/07/05 jQuery
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
Python 专题四 文件基础知识
2017/03/20 Python
一道python走迷宫算法题
2018/01/22 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
商务英语专业自荐信
2013/10/14 职场文书
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
《大江保卫战》教学反思
2014/04/11 职场文书
招股说明书范本
2014/05/06 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
办公室主任岗位职责
2015/01/31 职场文书
财务负责人岗位职责
2015/02/03 职场文书