微信小程序实战之自定义抽屉菜单(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 相关文章推荐
javascript笛卡尔积算法实现方法
Apr 08 Javascript
java必学必会之static关键字
Dec 03 Javascript
详解JS正则replace的使用方法
Mar 06 Javascript
AngularJs基于角色的前端访问控制的实现
Nov 07 Javascript
用file标签实现多图文件上传预览
Feb 14 Javascript
canvas雪花效果核心代码分享
Feb 19 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
Jun 12 Javascript
浅谈sass在vue注意的地方
Aug 10 Javascript
如何让你的JS代码更好看易读
Dec 01 Javascript
JavaScript栈和队列相关操作与实现方法详解
Dec 07 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
Mar 27 Javascript
jquery实现上传文件进度条
Mar 26 jQuery
微信小程序--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 设置MySQL连接字符集的方法
2011/01/02 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
JavaScript实现Iterator模式实例分析
2015/06/09 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
Python实现的Kmeans++算法实例
2014/04/26 Python
python生成日历实例解析
2014/08/21 Python
深入理解NumPy简明教程---数组1
2016/12/17 Python
深入理解python中的atexit模块
2017/03/07 Python
我就是这样学习Python中的列表
2019/06/02 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
24个canvas基础知识小结
2014/12/17 HTML / CSS
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
英国虚拟主机服务商:eUKhost
2016/08/16 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
人事助理岗位职责
2013/11/18 职场文书
愚人节活动策划方案
2014/03/11 职场文书
就业协议书样本
2014/08/20 职场文书
作风建设年活动总结
2014/08/27 职场文书
世界气象日活动总结
2015/02/27 职场文书
综合测评自我评价
2015/03/06 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
MySQL系列之六 用户与授权
2021/07/02 MySQL
Python学习之包与模块详解
2022/03/19 Python