微信小程序实战之自定义抽屉菜单(7)


Posted in Javascript onApril 18, 2017

微信提供了动画api,就是下面这个

微信小程序实战之自定义抽屉菜单(7)

相关链接:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-animation.html#wxcreateanimationobject

通过使用这个创建动画的api,可以做出很多特效出来

下面介绍一个抽屉菜单的案例

实现代码:
wxml:

<!--button--> 
<view class="btn" bindtap="powerDrawer" data-statu="open">button</view> 
<!--mask--> 
<view class="drawer_screen" bindtap="powerDrawer" data-statu="close" wx:if="{{showModalStatus}}"></view> 
<!--content--> 
<!--使用animation属性指定需要执行的动画--> 
<view animation="{{animationData}}" class="drawer_attr_box" wx:if="{{showModalStatus}}"> 
 <!--drawer content--> 
 <view class="drawer_content"> 
 <view class="drawer_title line">菜单1</view> 
 <view class="drawer_title line">菜单2</view> 
 <view class="drawer_title line">菜单3</view> 
 <view class="drawer_title line">菜单4</view> 
 <view class="drawer_title">菜单5</view> 
 </view> 
</view>

wxss:

/*button*/ 
.btn { 
 width: 80%; 
 padding: 20rpx 0; 
 border-radius: 10rpx; 
 text-align: center; 
 margin: 40rpx 10%; 
 background: #0C1939; 
 color: #fff; 
} 
/*mask*/ 
.drawer_screen { 
 width: 100%; 
 height: 100%; 
 position: fixed; 
 top: 0; 
 left: 0; 
 z-index: 1000; 
 background: #000; 
 opacity: 0.2; 
 overflow: hidden; 
} 
/*content*/ 
.drawer_attr_box { 
 width: 100%; 
 overflow: hidden; 
 position: fixed; 
 bottom: 0; 
 left: 0; 
 z-index: 1001; 
 background: #fff; 
} 
.drawer_content { 
 padding: 20rpx 40rpx; 
 height: 470rpx; 
 overflow-y: scroll; 
} 
.drawer_title{ 
 padding:20rpx; 
 font:42rpx "microsoft yahei"; 
 text-align: center; 
} 
.line{ 
 border-bottom: 1px solid #f8f8f8; 
}

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: 200, //动画时长 
  timingFunction: "linear", //线性 
  delay: 0 //0则不延迟 
 }); 
  
 // 第2步:这个动画实例赋给当前的动画实例 
 this.animation = animation; 
 
 // 第3步:执行第一组动画:Y轴偏移240px后(盒子高度是240px),停 
 animation.translateY(240).step(); 
 
 // 第4步:导出动画对象赋给数据对象储存 
 this.setData({ 
  animationData: animation.export() 
 }) 
  
 // 第5步:设置定时器到指定时候后,执行第二组动画 
 setTimeout(function () { 
  // 执行第二组动画:Y轴不偏移,停 
  animation.translateY(0).step() 
  // 给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象 
  this.setData({ 
  animationData: animation 
  }) 
  
  //关闭抽屉 
  if (currentStatu == "close") { 
  this.setData( 
   { 
   showModalStatus: false 
   } 
  ); 
  } 
 }.bind(this), 200) 
 
 // 显示抽屉 
 if (currentStatu == "open") { 
  this.setData( 
  { 
   showModalStatus: true 
  } 
  ); 
 } 
 } 
})

微信小程序实战之自定义抽屉菜单(7)

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

Javascript 相关文章推荐
jQuery表格行换色的三种实现方法
Jun 27 Javascript
jQuery层动画定位滑动效果的方法
Apr 30 Javascript
javascript弹出窗口实现代码
Nov 12 Javascript
js实现的万能flv网页播放器代码
Apr 30 Javascript
JavaScript实现复制文章自动添加版权
Aug 02 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
Dec 13 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
Feb 27 Javascript
详解Angular如何正确的操作DOM
Jul 06 Javascript
layui获取多选框中的值方法
Aug 15 Javascript
vuex 中插件的编写案例解析
Jun 10 Javascript
vue 实现微信浮标效果
Sep 01 Javascript
浅谈vue项目用到的mock数据接口的两种方式
Oct 09 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
Apr 18 #Javascript
微信小程序实战之自定义toast(6)
Apr 18 #Javascript
Jquery-data的三种用法
Apr 18 #jQuery
微信小程序实战之登录页面制作(5)
Mar 30 #Javascript
Angular2数据绑定详解
Apr 18 #Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
Jun 29 #Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
Apr 16 #Javascript
You might like
用PHP读注册表
2006/10/09 PHP
PHP IPV6正则表达式验证代码
2010/02/16 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
JSON 对象未定义错误的解决方法
2016/09/29 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
认识less和webstrom的less配置方法
2017/08/02 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
编写Python爬虫抓取暴走漫画上gif图片的实例分享
2016/04/20 Python
简单易懂的python环境安装教程
2017/07/13 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
保洁公司服务承诺书
2014/05/28 职场文书
表扬信范文
2015/05/04 职场文书
2015年行政执法工作总结
2015/05/23 职场文书
初中语文教学随笔
2015/08/15 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL
JS高级程序设计之class继承重点详解
2022/07/07 Javascript