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


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 尚未实现错误解决办法
Nov 27 Javascript
用js实现的自定义的对话框的实现代码
Mar 21 Javascript
使用js解决由border属性引起的div宽度问题
Nov 26 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
Jan 07 Javascript
jQuery实现瀑布流的取巧做法分享
Jan 12 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
Oct 11 Javascript
浅述Javascript的外部对象
Dec 07 Javascript
利用Angularjs中模块ui-route管理状态的方法
Dec 27 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
Feb 26 Javascript
jQuery实现的页面弹幕效果【测试可用】
Aug 17 jQuery
js实现tab栏切换效果
Aug 02 Javascript
在vant中使用时间选择器和popup弹出层的操作
Nov 04 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
NT IIS下用ODBC连接数据库
2006/10/09 PHP
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
php 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
js+FSO遍历文件夹下文件并显示
2007/03/07 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
[01:32]2016国际邀请赛中国区预选赛CDEC战队教练采访
2016/06/26 DOTA
在Linux下调试Python代码的各种方法
2015/04/17 Python
Python import用法以及与from...import的区别
2015/05/28 Python
Python中super()函数简介及用法分享
2016/07/11 Python
win与linux系统中python requests 安装
2016/12/04 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
大学生四个方面的自我评价
2013/09/19 职场文书
高校生生产实习自我鉴定
2013/09/21 职场文书
教师求职信范文分享
2013/12/27 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
行政人事经理职位说明书
2014/03/05 职场文书
公司聘任书模板
2014/03/29 职场文书
毕业生面试求职信
2014/06/23 职场文书
大学生逃课检讨书
2015/05/04 职场文书
游戏开发中如何使用CocosCreator进行音效处理
2021/04/14 Javascript
html form表单基础入门案例讲解
2021/07/15 HTML / CSS
利用Python实现Picgo图床工具
2021/11/23 Python
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL