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


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的一种模块模式
Mar 22 Javascript
javascript背投广告代码的完善
Apr 08 Javascript
jquery和js实现对div的隐藏和显示方法
Sep 26 Javascript
node.js中的fs.linkSync方法使用说明
Dec 15 Javascript
JS实现文字放大效果的方法
Mar 03 Javascript
一张Web前端的思维导图分享
Jul 03 Javascript
js实现登录框鼠标拖拽效果
Mar 09 Javascript
node.js平台下的mysql数据库配置及连接
Mar 31 Javascript
Express使用html模板的详细代码
Sep 18 Javascript
详解关于vue2.0工程发布上线操作步骤
Sep 27 Javascript
简单了解前端渐进式框架VUE
Jul 20 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
Aug 10 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
星际争霸中的对战模式介绍
2020/03/04 星际争霸
一个简单计数器的源代码
2006/10/09 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
php静态文件生成类实例分析
2015/01/03 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
PHP自动识别当前使用移动终端
2018/05/21 PHP
jquery 扑捉回车键事件代码
2014/04/24 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
javascript禁止超链接跳转的方法
2016/02/02 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
SelecT下拉框选中和取值的解决方法
2016/11/22 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
vue.js中created方法作用
2018/03/30 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
使用 Vue 实现一个虚拟列表的方法
2019/08/20 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
实例Python处理XML文件的方法
2015/08/31 Python
python类中super()和__init__()的区别
2016/10/18 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
使用python Telnet远程登录执行程序的方法
2019/01/26 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
致长跑运动员广播稿
2014/01/31 职场文书
办公室卫生管理制度
2015/08/04 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技