侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

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

微信(小程序)  /  管理员 发布于 3年前   149

演示

演示1

演示2

演示3

 

一、功能描述

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代码

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

您可能感兴趣的文章:

  • 微信小程序自定义toast组件的方法详解【含动画】
  • 微信小程序带动画弹窗组件使用方法详解
  • 微信小程序有旋转动画效果的音乐组件实例代码
  • 微信小程序scroll-view组件实现滚动动画
  • 微信小程序loading组件显示载入动画用法示例【附源码下载】


  • 上一条:
    详解基于Wepy开发小程序插件(推荐)
    下一条:
    微信小程序中button去除默认的边框实例代码
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 小程序开发之跳转微信直播示例api(0个评论)
    • 在uni_app中开发小程序之常用功能示例代码汇总(0个评论)
    • 小程序开发之多端框架:taro(0个评论)
    • 微信小程序前端使用七牛云官方SDK上传七牛云代码示例(0个评论)
    • 百度小程序审核未通过,真机审核存在点击返回键退出小程序...解决方式之一tabBar(0个评论)
    • 近期文章
    • 在laravel框架中的5个HTTP客户端技巧分享(0个评论)
    • 在go语言中使用FFmpeg库实现PCM音频文件编码为mp3格式文件流程步骤(0个评论)
    • gopacket免安装Pcap实现驱动层流量抓包流程步骤(0个评论)
    • 在laravel项目中实现密码强度验证功能推荐扩展包:password-strength(0个评论)
    • 在go语言中用filepath.Match()函数以通配符模式匹配字符串示例(0个评论)
    • Laravel Response Classes 响应类使用优化浅析(0个评论)
    • mysql中sql_mode的各模式浅析(0个评论)
    • 百度文心一言今天发布,个人第一批内测体验记录,不好别打我(0个评论)
    • 嘿加密世界让我们谈谈在共识中将中本聪主流化(0个评论)
    • 在go语言中寻找两个切片或数组中的相同元素/共同点/交集并集示例代码(0个评论)
    • 近期评论
    • 博主 在

      2023年国务院办公厅春节放假通知:1月21日起休7天中评论 @ xiaoB 你只管努力,剩下的叫给天意;天若有情天亦老,..
    • xiaoB 在

      2023年国务院办公厅春节放假通知:1月21日起休7天中评论 会不会春节放假后又阳一次?..
    • BUG4 在

      你翻墙过吗?国内使用vpn翻墙可能会被网警抓,你需了解的事中评论 不是吧?..
    • 博主 在

      go语言+beego框架中获取get,post请求的所有参数中评论 @ t1  直接在router.go文件中配就ok..
    • Jade 在

      如何在MySQL查询中获得当月记录中评论 Dear zongscan.com team, We can skyroc..
    • 2017-10
    • 2018-01
    • 2020-03
    • 2021-06
    • 2021-10
    • 2022-03
    • 2023-02
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客