微信小程序实战之自定义抽屉菜单(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表单验证使用示例(javascript验证邮箱)
Jan 07 Javascript
js实现右下角提示框的方法
Feb 03 Javascript
使用canvas实现仿新浪微博头像截取上传功能
Sep 02 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
Jan 26 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
Jul 20 Javascript
js实现将json数组显示前台table中
Jan 10 Javascript
Three.js基础学习教程
Nov 16 Javascript
vue根据值给予不同class的实例
Sep 29 Javascript
Vue.js实现开发购物车功能的方法详解
Feb 22 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
Nov 10 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
May 08 Javascript
ES6 解构赋值的原理及运用
May 25 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 Ajax实现页面无刷新发表评论
2007/01/02 PHP
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
PHP获取远程http或ftp文件的md5值的方法
2019/04/15 PHP
关于PHP5.6+版本“No input file specified”问题的解决
2019/12/11 PHP
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
手动初始化Angular的模块与控制器
2016/12/26 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
微信小程序中进行地图导航功能的实现方法
2018/06/29 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
Python入门学习指南分享
2018/04/11 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
pycharm实现猜数游戏
2020/12/07 Python
HTML5通用接口详解
2016/06/12 HTML / CSS
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
业务主管岗位职责范本
2013/12/25 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
同意迁入证明模板
2014/10/26 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
学术会议通知
2015/04/15 职场文书
教师节联欢会主持词
2015/07/04 职场文书
2016年元旦主持词
2015/07/06 职场文书
详细分析PHP7与PHP5区别
2021/06/26 PHP
Go Plugins插件的实现方式
2021/08/07 Golang
python数字图像处理实现图像的形变与缩放
2022/06/28 Python