微信小程序实战之自定义抽屉菜单(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 相关文章推荐
js函数与php函数的区别实例浅析
Jan 12 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
Dec 10 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
Jun 03 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
Dec 13 Javascript
微信小程序 实战实例开发流程详细介绍
Jan 05 Javascript
微信小程序 使用canvas制作K线实例详解
Jan 12 Javascript
浅谈vuex 闲置状态重置方案
Jan 04 Javascript
JS设计模式之命令模式概念与用法分析
Feb 06 Javascript
Vue.js实现图片的随意拖动方法
Mar 08 Javascript
Node.js 使用AngularJS的方法示例
May 11 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
Sep 11 Javascript
js观察者模式的弹幕案例
Nov 23 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学习之 循环结构实现代码
2011/06/09 PHP
JpGraph php柱状图使用介绍
2011/08/23 PHP
php针对cookie操作的队列操作类实例
2014/12/10 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
2019/02/28 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
Javascript 作用域使用说明
2009/08/13 Javascript
jQuery中live方法的重复绑定说明
2011/10/21 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
javascript简单实现命名空间效果
2014/03/06 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
Node.js简单入门前传
2017/08/21 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
Python简单实现自动删除目录下空文件夹的方法
2017/08/29 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
如何表示python中的相对路径
2020/07/08 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
html5 web本地存储将取代我们的cookie
2012/12/26 HTML / CSS
联想法国官方网站:Lenovo法国
2018/10/18 全球购物
停电通知范文
2015/04/16 职场文书
幼儿园托班开学寄语(2015秋季)
2015/05/27 职场文书
求职自我评价参考范文
2019/05/16 职场文书
银行求职信怎么写
2019/06/20 职场文书
Django实现drf搜索过滤和排序过滤
2021/06/21 Python