微信小程序自定义对话框弹出和隐藏动画


Posted in Javascript onJuly 19, 2018

本文实例为大家分享了微信小程序自定义对话框弹出和隐藏动画的具体代码,供大家参考,具体内容如下

index.js

//index.js
var app = getApp();
 
let animationShowHeight = 300;
 
Page({
 data:{
 animationData:"",
 showModalStatus:false,
 imageHeight:0,
 imageWidth:0
 },
 imageLoad: function (e) { 
 this.setData({imageHeight:e.detail.height,imageWidth:e.detail.width}); 
 },
 showModal: function () {
 // 显示遮罩层
 var animation = wx.createAnimation({
  duration: 200,
  timingFunction: "linear",
  delay: 0
 })
 this.animation = animation
 animation.translateY(animationShowHeight).step()
 this.setData({
  animationData: animation.export(),
  showModalStatus: true
 })
 setTimeout(function () {
  animation.translateY(0).step()
  this.setData({
  animationData: animation.export()
  })
 }.bind(this), 200)
 },
 hideModal: function () {
 // 隐藏遮罩层
 var animation = wx.createAnimation({
  duration: 200,
  timingFunction: "linear",
  delay: 0
 })
 this.animation = animation;
 animation.translateY(animationShowHeight).step()
 this.setData({
  animationData: animation.export(),
 })
 setTimeout(function () {
 animation.translateY(0).step()
 this.setData({
  animationData: animation.export(),
  showModalStatus: false
 })
 }.bind(this), 200)
 },
 onShow:function(){
  let that = this;
  wx.getSystemInfo({
  success: function(res) {
  animationShowHeight = res.windowHeight;
  }
 })
 },
 
})

index.wxml

<!--index.wxml-->
<view class="container-column">
 
 <view animation="{{animationData}}" class="container-column buydes-dialog-container" wx:if="{{showModalStatus}}">
 <view class="buydes-dialog-container-top" bindtap="hideModal"></view>
 <view class="container-column buydes-dialog-container-bottom">
  <block wx:for="{{['操作1','操作2','操作3','取消']}}" wx:for-index="index" wx:key="key" wx:for-item="item">
  <view bindtap="hideModal" class="buydes-dialog-container-bottom-item" >{{item}}</view>
  </block>
 </view>
 </view>
 
 <image bindtap="showModal" bindload="imageLoad" style="width:{{imageWidth}}px;;height:{{imageHeight}}px;" src="../pro1.jpg"/>
 
</view>

index.wxss

.buydes-dialog-container{
 width: 100%;
 height: 100%;
 justify-content: space-between;
 background-color:rgba(15, 15, 26, 0.7);
 position: fixed;
 z-index: 999;
}
 
.buydes-dialog-container-top{
 flex-grow: 1;
}
 
.buydes-dialog-container-bottom{
 display: flex;
 flex-grow: 0;
}
 
.buydes-dialog-container-bottom-item{
 padding:24rpx;
 display: flex;
 justify-content: center;
 border-bottom: 1rpx solid #eeeeee;
}

效果图:

微信小程序自定义对话框弹出和隐藏动画

下面是实际开发中的效果图,没有源码,但是原理和上面的是一样的,通过上面的DEMO学习加上平常的CSS基础,完全可以做出下面的效果

微信小程序自定义对话框弹出和隐藏动画

源码下载:微信小程序自定义对话框弹出和隐藏动画

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

Javascript 相关文章推荐
基于JQuery实现滚动到页面底端时自动加载更多信息
Jan 31 Javascript
JS是按值传递还是按引用传递
Jan 30 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
Jul 18 Javascript
详解javascript高级定时器
Dec 31 Javascript
基于vue2.0实现的级联选择器
Jun 09 Javascript
JS实现批量上传文件并显示进度功能
Jun 27 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
Sep 21 Javascript
layui layer select 选择被遮挡的解决方法
Sep 21 Javascript
JS+Canvas实现五子棋游戏
Aug 26 Javascript
vue 导出文件,携带请求头token操作
Sep 10 Javascript
js仿淘宝放大镜效果
Dec 28 Javascript
全面解析js中的原型,原型对象,原型链
Jan 25 Javascript
浅谈Vue初学之props的驼峰命名
Jul 19 #Javascript
解决vue-cli3 使用子目录部署问题
Jul 19 #Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
Jul 19 #Javascript
微信小程序实现分享到朋友圈功能
Jul 19 #Javascript
微信小程序实现自定义加载图标功能
Jul 19 #Javascript
Angular5集成eventbus的示例代码
Jul 19 #Javascript
微信小程序实现弹出菜单
Jul 19 #Javascript
You might like
php检测图片木马多进制编程实践
2013/04/11 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
php数组中删除元素之重新索引的方法
2014/09/16 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
JS二维数组的定义说明
2014/03/03 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
jquery实现一个全局计时器(商城可用)
2017/06/30 jQuery
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
PyQt5实现拖放功能
2018/04/25 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
python用pandas数据加载、存储与文件格式的实例
2018/12/07 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
Python创建字典的八种方式
2019/02/27 Python
​如何愉快地迁移到 Python 3
2019/04/28 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
什么是python的函数体
2020/06/19 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
表彰大会主持词
2014/03/26 职场文书
优秀学生干部个人事迹材料
2014/06/02 职场文书
综合测评个人总结
2015/03/03 职场文书
产品调价通知函
2015/04/20 职场文书