微信小程序实现消息框弹出动画


Posted in Javascript onApril 18, 2020

微信小程序动画之消息框弹出,供大家参考,具体内容如下

上图

微信小程序实现消息框弹出动画

js:

Page({
 data: {
 showModalStatus: false
 },
 powerDrawer: function(e) {
 var currentStatu = e.currentTarget.dataset.statu;
 this.util(currentStatu)
 },
 util: function(currentStatu) {
 /* 动画部分 */
 // 第1步:创建动画实例 
 var animation = wx.createAnimation({
  duration: 300, //动画时长 
  timingFunction: "linear", //线性 
  delay: 0 //0则不延迟 
 });

 // 第2步:这个动画实例赋给当前的动画实例 
 this.animation = animation;

 // 第3步:执行第一组动画 
 animation.opacity(0).rotateY(100).step();

 // 第4步:导出动画对象赋给数据对象储存 
 this.setData({
  animationData: animation.export()
 })

 // 第5步:设置定时器到指定时候后,执行第二组动画 
 setTimeout(function() {
  // 执行第二组动画 
  animation.opacity(1).rotateY(0).step();
  // 给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象 
  this.setData({
  animationData: animation
  })

  //关闭 
  if (currentStatu == "close") {
  this.setData({
   showModalStatus: false
  });
  }
 }.bind(this), 200)

 // 显示 
 if (currentStatu == "open") {
  this.setData({
  showModalStatus: true
  });
 }
 }

})

wxml:

<!--button-->
<view class="btn bubble" bindtap="powerDrawer" data-statu="open">登录</view>

<!--mask-->
<view class="drawer_screen" bindtap="powerDrawer" data-statu="close" wx:if="{{showModalStatus}}"></view>
<!--content-->
<!--使用animation属性指定需要执行的动画-->
<view animation="{{animationData}}" class="drawer_box" wx:if="{{showModalStatus}}">

 <!--drawer content-->
 <view class="drawer_title">消息框</view>
 <view class="drawer_content">
 </view>
 <view class="btn_ok" bindtap="powerDrawer" data-statu="close">确定</view>
</view>

wxss:

/*button*/

.btn {
 width: 80%;
 padding: 20rpx 0;
 border-radius: 10rpx;
 text-align: center;
 margin: 40rpx 10%;
 background: #07c160;
 color: #fff;
}

/*mask*/

.drawer_screen {
 width: 100%;
 height: 100%;
 position: fixed;
 top: 0;
 left: 0;
 z-index: 1000;
 background: #000;
 opacity: 0.4;
 overflow: hidden;
}

/*content*/

.drawer_box {
 width: 650rpx;
 overflow: hidden;
 position: fixed;
 top: 50%;
 left: 0;
 z-index: 1001;
 background: #fafafa;
 margin: -150px 50rpx 0 50rpx;
 border-radius: 3px;
}

.drawer_title {
 padding: 15px;
 font: 20px "microsoft yahei";
 text-align: center;
}

.text {
 font: 20px "microsoft yahei";
 text-align: center;
}

.drawer_content {
 height: 80px;
 overflow-y: scroll; /*超出父盒子高度可滚动*/
}

.btn_ok {
 padding: 10px;
 font: 20px "microsoft yahei";
 text-align: center;
 border-top: 1px solid #e8e8ea;
 color: #3cc51f;
}

.bottom {
 padding-bottom: 20px;
}

.bubble {
 position: relative;
 overflow: hidden;
}

.bubble:after {
 content: "";
 background: #999;
 position: absolute;
 width: 750rpx;
 height: 750rpx;
 left: calc(50% - 375rpx);
 top: calc(50% - 375rpx);
 opacity: 0;
 margin: auto;
 border-radius: 50%;
 transform: scale(1);
 transition: all 0.4s ease-in-out;
}

.bubble:active:after {
 transform: scale(0);
 opacity: 1;
 transition: 0s;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中的其他对象
Jan 16 Javascript
js正则表达exec与match的区别说明
Jan 29 Javascript
alert出数组中的随即值代码
Sep 25 Javascript
BootStrap文件上传样式超好看【持续更新】
May 10 Javascript
JS搜狐面试题分析
Dec 16 Javascript
JavaScript在控件上添加倒计时功能的实现代码
Jul 04 Javascript
使用JQ完成表格隔行换色的简单实例
Aug 25 Javascript
JS实现的ajax和同源策略(实例讲解)
Dec 01 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
Dec 25 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
Dec 20 Javascript
vue实现购物车抛物线小球动画效果的方法详解
Feb 13 Javascript
解决vue初始化项目一直停在downloading template的问题
Nov 09 Javascript
前端Electron新手入门教程详解
Jun 21 #Javascript
javascript实现自由编辑图片代码详解
Jun 21 #Javascript
JS中超越现实的匿名函数用法实例分析
Jun 21 #Javascript
微信小程序实现圆形进度条动画
Nov 18 #Javascript
JavaScript迭代器的含义及用法
Jun 21 #Javascript
js事件触发操作实例分析
Jun 21 #Javascript
微信小程序实现下拉刷新动画
Jun 21 #Javascript
You might like
古巴咖啡 Cubita琥爵咖啡 独特的加勒比海风味咖啡
2021/03/06 新手入门
php中的数组操作函数整理
2008/08/18 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
php中删除、清空session的方式总结
2015/10/09 PHP
JavaScript 密码强度判断代码
2009/09/05 Javascript
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
基于jquery的拖动布局插件
2011/11/25 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
vue实现按需加载组件及异步组件功能
2019/05/27 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
使用tensorflow实现线性回归
2018/09/08 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
党员自我批评与反省材料
2014/02/10 职场文书
最美家庭活动方案
2014/08/31 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
手机被没收的检讨书
2014/10/04 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
Java实现简易的分词器功能
2021/06/15 Java/Android