微信小程序实战之自定义抽屉菜单(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 相关文章推荐
解决extjs grid 不随窗口大小自适应的改变问题
Jan 26 Javascript
JS JQUERY实现滚动条自动滚到底的方法
Jan 09 Javascript
Javascript中的apply()方法浅析
Mar 15 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
May 11 Javascript
百度地图api如何使用
Aug 03 Javascript
JS遍历数组及打印数组实例分析
Jan 21 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
Apr 29 Javascript
关于原生js中bind函数的简单实现
Aug 10 Javascript
jQuery实现验证码功能
Mar 17 Javascript
AngualrJs清除定时器遇到的坑
Oct 13 Javascript
vue-router 起步步骤详解
Mar 26 Javascript
js闭包的9个使用场景
Dec 29 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的dl函数用法实例
2014/11/06 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
非常好的js代码
2006/06/27 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
浅析document.createDocumentFragment()与js效率
2013/07/08 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
JS实现拖拽的方法分析
2016/12/20 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
ES6中的Promise代码详解
2017/10/09 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
JS栈stack类的实现与使用方法示例
2019/01/31 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
python 多进程通信模块的简单实现
2014/02/20 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
python函数超时自动退出的实操方法
2020/12/28 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
2018/04/19 全球购物
惠普香港官方商店:HP香港
2019/04/30 全球购物
工程项目经理岗位职责
2013/12/15 职场文书
《月光启蒙》教学反思
2014/03/01 职场文书
优秀班组申报材料
2014/12/25 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书