微信小程序动画组件使用解析,类似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 相关文章推荐
jquery ajax jsonp跨域调用实例代码
Dec 11 Javascript
基于jquery的simpleValidate简易验证插件
Jan 31 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
Dec 03 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
Dec 16 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
Feb 14 Javascript
浅谈JS如何实现真正的对象常量
Jun 25 Javascript
vue短信验证性能优化如何写入localstorage中
Apr 25 Javascript
小程序点赞收藏功能的实现代码示例
Sep 07 Javascript
node上的redis调用优化示例详解
Oct 30 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
May 01 Javascript
vue 使用v-for进行循环的实例代码详解
Feb 19 Javascript
Javascript var变量删除原理及实现
Aug 26 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&&mysql)三
2006/10/09 PHP
基于文本的留言簿
2006/10/09 PHP
浅谈php命令行用法
2015/02/04 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
js资料toString 方法
2007/03/13 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
jQuery验证插件validate使用详解
2016/05/11 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
Python实现多进程共享数据的方法分析
2017/12/04 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
美国女鞋品牌:naturalizer(娜然)
2016/08/01 全球购物
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
创意广告词
2014/03/17 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
信用卡收入证明范本
2015/06/12 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
Python进度条的使用
2021/05/17 Python
Vue的生命周期一起来看看
2022/02/24 Vue.js
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫