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


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 相关文章推荐
javascript 解析后的xml对象的读取方法细解
Jul 25 Javascript
一个CSS+jQuery实现的放大缩小动画效果
Feb 19 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
May 26 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
Jun 16 Javascript
巧用Javascript的逻辑运算符
Dec 02 Javascript
深入理解vue.js中$watch的oldvalue与newValue
Aug 07 Javascript
Vue.js仿微信聊天窗口展示组件功能
Aug 11 Javascript
完美解决linux下node.js全局模块找不到的情况
May 16 Javascript
基于webpack4搭建的react项目框架的方法
Jun 30 Javascript
详解webpack自定义loader初探
Aug 29 Javascript
element-ui 弹窗组件封装的步骤
Jan 22 Javascript
Ajax异步刷新功能及简单案例
Nov 20 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正则
2006/07/07 PHP
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
Node.js实现文件上传
2016/07/05 Javascript
input file上传 图片预览功能实例代码
2016/10/25 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
使用FormData实现上传多个文件
2018/12/04 Javascript
JavaScript实现横版菜单栏
2020/03/17 Javascript
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
浅谈Python中的闭包
2015/07/08 Python
Python排序搜索基本算法之插入排序实例分析
2017/12/11 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
python装饰器练习题及答案
2019/11/01 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
python右对齐的实例方法
2020/07/05 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
UNIX命令速查表
2012/03/10 面试题
大学新闻系自荐书
2014/05/31 职场文书
股指期货心得体会
2014/09/10 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
Golang ort 中的sortInts 方法
2022/04/24 Golang