微信小程序实战之自定义抽屉菜单(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 第二课 操作包装集元素代码
Mar 14 Javascript
一个js的tab切换效果代码[代码分离]
Apr 11 Javascript
jQuery中创建实例与原型继承揭秘
Dec 21 Javascript
EASYUI TREEGRID异步加载数据实现方法
Aug 22 Javascript
详解JavaScript基于面向对象之继承实例
Dec 16 Javascript
javascript 内置对象及常见API详细介绍
Nov 01 Javascript
AngularJS中table表格基本操作示例
Oct 10 Javascript
js canvas实现红包照片效果
Aug 21 Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
Nov 15 Javascript
js 将线性数据转为树形的示例代码
May 28 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
Sep 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图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
浅析javascript 定时器
2014/12/23 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
2019/04/02 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
Python实现Dijkstra算法
2018/10/17 Python
详解django2中关于时间处理策略
2019/03/06 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
python能做什么 python的含义
2019/10/12 Python
python返回数组的索引实例
2019/11/28 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
PyTorch加载自己的数据集实例详解
2020/03/18 Python
python中time、datetime模块的使用
2020/12/14 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
司机的工作范围及职责
2013/11/13 职场文书
秋季婚礼证婚词
2014/01/11 职场文书
向女朋友道歉的话
2015/01/20 职场文书
董事长岗位职责
2015/02/13 职场文书
法务专员岗位职责
2015/02/14 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
2016计划生育先进个人事迹材料
2016/02/29 职场文书