微信小程序自定义底部弹出框动画


Posted in Javascript onNovember 18, 2020

微信小程序之自定义底部弹出框动画,供大家参考,具体内容如下

最近做小程序时,会经常用到各种弹框。直接做显示和隐藏虽然也能达到效果,但是体验性太差,也比较简单粗暴。想要美美地玩,添加点动画还是非常有必要的。下面做一个底部上滑的弹框。

微信小程序自定义底部弹出框动画

wxml

<view class="modals modals-bottom-dialog" hidden="{{hideModal}}">
 <view class="modals-cancel" bindtap="hideModal"></view>
 <view class="bottom-dialog-body bottom-pos" animation="{{animationData}}"></view>
</view>

<button bindtap="showModal">点我</button>

wxss

/*模态框*/
.modals {
 position: fixed;
 z-index: 999;
 top: 0;
 left: 0;
 right: 0;
 bottom: 0;
}

.modals-cancel {
 position: absolute;
 z-index: 1000;
 top: 0;
 left: 0;
 right: 0;
 bottom: 0;
 background-color: rgba(0, 0, 0, .5);
}

.bottom-dialog-body {
 position: absolute;
 z-index: 10001;
 bottom: 0;
 left: 0;
 right: 0;
 padding: 30rpx;
 height: 800rpx;
 background-color: #fff;
}

/*动画前初始位置*/
.bottom-pos {
 -webkit-transform: translateY(100%);
 transform: translateY(100%);
}

js

Page({
 data:{
 hideModal:true, //模态框的状态 true-隐藏 false-显示
 animationData:{},//
 },

 // 显示遮罩层
 showModal: function () {
 var that=this;
 that.setData({
 hideModal:false
 })
 var animation = wx.createAnimation({
 duration: 600,//动画的持续时间 默认400ms 数值越大,动画越慢 数值越小,动画越快
 timingFunction: 'ease',//动画的效果 默认值是linear
 })
 this.animation = animation 
 setTimeout(function(){
 that.fadeIn();//调用显示动画
 },200) 
 },

 // 隐藏遮罩层
 hideModal: function () {
 var that=this; 
 var animation = wx.createAnimation({
 duration: 800,//动画的持续时间 默认400ms 数值越大,动画越慢 数值越小,动画越快
 timingFunction: 'ease',//动画的效果 默认值是linear
 })
 this.animation = animation
 that.fadeDown();//调用隐藏动画 
 setTimeout(function(){
 that.setData({
 hideModal:true
 }) 
 },720)//先执行下滑动画,再隐藏模块
 
 },

 //动画集
 fadeIn:function(){
 this.animation.translateY(0).step()
 this.setData({
 animationData: this.animation.export()//动画实例的export方法导出动画数据传递给组件的animation属性
 }) 
 },
 fadeDown:function(){
 this.animation.translateY(300).step()
 this.setData({
 animationData: this.animation.export(), 
 })
 }, 
})

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

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

Javascript 相关文章推荐
不懂JavaScript应该怎样学
Apr 16 Javascript
jQuery getJSON 处理json数据的代码
Jul 26 Javascript
基于jquery的$.ajax async使用
Oct 19 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
Dec 12 Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 Javascript
在js中实现邮箱格式的验证方法(推荐)
Oct 24 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
Aug 16 Javascript
JavaScript中常见内置函数用法示例
May 14 Javascript
JS实现面向对象继承的5种方式分析
Jul 21 Javascript
微信小程序的tab选项卡的实现效果
May 15 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
May 31 jQuery
vue使用v-model进行跨组件绑定的基本实现方法
Apr 28 Vue.js
vue 封装面包屑组件教程
Nov 16 #Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
Nov 16 #Javascript
小程序实现密码输入框
Nov 16 #Javascript
vue 使用localstorage实现面包屑的操作
Nov 16 #Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
Nov 16 #Javascript
Vue中使用JsonView来展示Json树的实例代码
Nov 16 #Javascript
Vue 数据绑定的原理分析
Nov 16 #Javascript
You might like
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
基于jquery的跨域调用文件
2010/11/19 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
JavaScript实现找质数代码分享
2015/03/24 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
原生JS实现留言板
2020/03/26 Javascript
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
urllib2自定义opener详解
2014/02/07 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
Python中函数参数匹配模型详解
2019/06/09 Python
Python3如何使用tabulate打印数据
2020/09/25 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
小学清明节活动方案
2014/03/08 职场文书
导游词范文之颐和园/重庆/云台山
2019/09/10 职场文书
再谈python_tkinter弹出对话框创建
2022/03/20 Python
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python