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


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 相关文章推荐
jquery中eq和get的区别与使用方法
Apr 14 Javascript
js去空格技巧分别去字符串前后、左右空格
Oct 21 Javascript
JS根据年月获得当月天数的实现代码
Jul 03 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
Sep 02 Javascript
JS实现点击按钮自动增加一个单元格的方法
Mar 09 Javascript
Vue表单实例代码
Sep 05 Javascript
纯JS实现弹性导航条效果
Mar 06 Javascript
详谈jQuery.load()和Jsp的include的区别
Apr 12 jQuery
React组件之间的通信的实例代码
Jun 27 Javascript
微信小程序错误this.setData报错及解决过程
Sep 18 Javascript
JS工厂模式开发实践案例分析
Oct 17 Javascript
vue开发移动端底部导航条功能
Apr 08 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
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
PHP开发制作一个简单的活动日程表Calendar
2016/06/20 PHP
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
微信小程序 location API接口详解及实例代码
2016/10/12 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
Vue异步加载about组件
2017/10/31 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
python爬取w3shcool的JQuery课程并且保存到本地
2017/04/06 Python
python交互式图形编程实例(三)
2017/11/17 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
python实现批量修改文件名
2020/03/23 Python
英国儿童图书网站:Scholastic
2017/03/26 全球购物
朗仕(Lab series)英国官网:雅诗兰黛集团男士专属护肤品牌
2017/11/28 全球购物
自愿离婚协议书范本
2015/01/26 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
PHP实现rar解压读取扩展包小结
2021/06/03 PHP
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python
手残删除python之后的补救方法
2021/06/26 Python
关于JavaScript轮播图的实现
2021/11/20 Javascript