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


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实现学校的校历(asp.net+jquery ui 1.72)
Jan 01 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
May 05 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
Feb 27 Javascript
js仿苹果iwatch外观的计时器代码分享
Aug 26 Javascript
轻松搞定js表单验证
Oct 13 Javascript
AngularJS 霸道的过滤器小结
Apr 26 Javascript
jQuery之动画ajax事件(实例讲解)
Jul 18 jQuery
webpack 3.X学习之多页面打包的方法
Sep 04 Javascript
vue 集成jTopo 处理方法
Aug 07 Javascript
VUE项目初建和常见问题总结
Sep 12 Javascript
浅谈TypeScript的类型保护机制
Feb 23 Javascript
Ajax 的初步实现(使用vscode+node.js+express框架)
Jun 18 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/01/22 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
javascript 事件处理程序介绍
2012/06/27 Javascript
获取数组中最大最小值方法js代码(自写)
2013/08/12 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
Node.js事件循环(Event Loop)和线程池详解
2015/01/28 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
python实现从ftp服务器下载文件的方法
2015/04/30 Python
Python itertools模块详解
2015/05/09 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
python中pickle模块浅析
2020/12/29 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
行政人事岗位职责
2014/03/17 职场文书
家居装修公司创业计划书范文
2014/03/20 职场文书
公司联欢会策划方案
2014/05/19 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
追讨欠款律师函
2015/06/24 职场文书
2015重阳节座谈会主持词
2015/07/30 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS