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


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 相关文章推荐
让textarea控件的滚动条怎是位与最下方
Apr 20 Javascript
Javascript 面向对象 对象(Object)
May 13 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
Nov 14 Javascript
jquery文字上下滚动的实现方法
Mar 22 Javascript
A标签中通过href和onclick传递的this对象实现思路
Apr 19 Javascript
js 得到文件后缀(通过正则实现)
Jul 08 Javascript
弹出最简单的模式化遮罩层的js代码
Dec 04 Javascript
ExpressJS入门实例
Jan 14 Javascript
用原生JS对AJAX做简单封装的实例代码
Jul 13 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
Dec 19 Javascript
ES6中的箭头函数实例详解
Apr 06 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
Mar 13 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 日志缩略名的创建函数代码
2010/05/26 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
php用户注册信息验证正则表达式
2015/11/12 PHP
YII2.0之Activeform表单组件用法实例
2016/01/09 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
jQuery 隔行换色 支持键盘上下键,按Enter选定值
2009/08/02 Javascript
js中的window.open返回object的错误的解决方法
2009/08/15 Javascript
jQuery中after的两种用法实例
2013/07/03 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
VUE前端cookie简单操作
2017/10/17 Javascript
Vue header组件开发详解
2018/01/26 Javascript
微信小程序实现留言板功能
2018/11/02 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
python随机生成指定长度密码的方法
2015/04/04 Python
Python扩展内置类型详解
2018/03/26 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
详解numpy.meshgrid()方法使用
2019/08/01 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
世界上最大的在线汽车租赁预订平台:Rentalcars.com(支持中文)
2018/10/12 全球购物
美国校服网上商店:French Toast
2019/10/08 全球购物
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
文秘专业大学生求职信
2013/11/10 职场文书
师德演讲稿范文
2014/05/06 职场文书
保护地球的标语
2014/06/17 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
违纪开除通知书
2015/04/25 职场文书