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


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入门教程(6) Window窗口对象
Jan 31 Javascript
js局部刷新页面时间具体实现
Jul 04 Javascript
Javascript实现的Map集合工具类完整实例
Jul 31 Javascript
基于Bootstrap实现tab标签切换效果
Apr 15 Javascript
原生javascript实现图片放大镜效果
Jan 18 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
Feb 08 Javascript
js实现九宫格拼图小游戏
Feb 13 Javascript
jQuery实现的简单拖动层示例
Feb 22 Javascript
js实现自动图片轮播代码
Mar 22 Javascript
JavaScrpt的面向对象全面解析
May 09 Javascript
ECMAScript6变量的解构赋值实例详解
Sep 19 Javascript
js实现盒子移动动画效果
Aug 09 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
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
Protoss兵种介绍
2020/03/14 星际争霸
PHP GD 图像处理组件的常用函数总结
2010/04/28 PHP
PHP 类商品秒杀计时实现代码
2010/05/05 PHP
PHP缓存技术的多种方法小结
2012/08/14 PHP
php中字符集转换iconv函数使用总结
2014/10/11 PHP
php把数组值转换成键的方法
2015/07/13 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
使用laravel指定日志文件记录任意日志
2019/10/17 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
2020/06/24 PHP
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
jQuery内置的AJAX功能和JSON的使用实例
2014/07/27 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
JavaScript事件处理程序详解
2017/09/19 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
2018/08/20 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
2020/11/04 Javascript
[56:18]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中的hypot()方法使用简介
2015/05/18 Python
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
毕业实习评语
2014/02/10 职场文书
努力学习演讲稿
2014/05/10 职场文书
会计简历自我评价
2015/03/10 职场文书
大客户经理岗位职责
2015/04/09 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
外出学习心得体会范文
2016/01/18 职场文书
Nginx配置使用详解
2022/07/07 Servers