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


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 相关文章推荐
angularjs实现与服务器交互分享
Jun 24 Javascript
原生javascript实现Tab选项卡切换功能
Jan 12 Javascript
如何使用AngularJs打造权限管理系统【简易型】
May 09 Javascript
jQuery编写textarea输入字数限制代码
Mar 23 jQuery
AngularJS的ng-click传参的方法
Jun 19 Javascript
vue-cli配置文件——config篇
Jan 04 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
vue计算属性computed、事件、监听器watch的使用讲解
Jan 21 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
Jun 17 Javascript
vue.js循环radio的实例
Nov 07 Javascript
详解小程序横屏方案对比
Jun 28 Javascript
JavaScript 防篡改对象的用法示例
Apr 24 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 数据库字段复用的基本原理与示例
2011/07/22 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
2013/04/01 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
2015/11/30 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
详解Node.js实现301、302重定向服务
2017/04/07 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
jquery弹窗时禁止body滚动条滚动的例子
2019/09/21 jQuery
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
python学习之hook钩子的原理和使用
2018/10/25 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
法国在线购买汽车轮胎网站:123pneus.fr
2019/02/25 全球购物
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
公司JAVA开发面试题
2015/04/02 面试题
会计电算化专业个人的自我评价
2013/11/24 职场文书
《挑山工》的教学反思
2014/02/16 职场文书
人力资源部经理的岗位职责
2014/03/04 职场文书
个人借款协议书范本
2014/11/17 职场文书
颐和园导游词
2015/01/30 职场文书
村官个人总结范文
2015/03/03 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
工作后的感想
2015/08/07 职场文书