微信小程序实现弹出菜单


Posted in Javascript onJuly 19, 2018

本文实例为大家分享了微信小程序实现弹出菜单的具体代码,供大家参考,具体内容如下

菜单

微信小程序实现弹出菜单

代码:

1.index.js

//index.js
//获取应用实例
var app = getApp()
Page({
 data: {
 isPopping: false,//是否已经弹出
 animationPlus: {},//旋转动画
 animationcollect: {},//item位移,透明度
 animationTranspond: {},//item位移,透明度
 animationInput: {},//item位移,透明度
 //我的博客:http://blog.csdn.net/qq_31383345
 //CSDN微信小程序开发专栏:http://blog.csdn.net/column/details/13721.html
 },
 onLoad: function () {

 },
 //点击弹出
 plus: function () {
 if (this.data.isPopping) {
  //缩回动画
  popp.call(this);
  this.setData({
  isPopping: false
  })
 } else {
  //弹出动画
  takeback.call(this);
  this.setData({
  isPopping: true
  })
 }
 },
 input: function () {
 console.log("input")
 },
 transpond: function () {
 console.log("transpond")
 },
 collect: function () {
 console.log("collect")
 }
})



//弹出动画
function popp() {
 //plus顺时针旋转
 var animationPlus = wx.createAnimation({
 duration: 500,
 timingFunction: 'ease-out'
 })
 var animationcollect = wx.createAnimation({
 duration: 500,
 timingFunction: 'ease-out'
 })
 var animationTranspond = wx.createAnimation({
 duration: 500,
 timingFunction: 'ease-out'
 })
 var animationInput = wx.createAnimation({
 duration: 500,
 timingFunction: 'ease-out'
 })
 animationPlus.rotateZ(180).step();
 animationcollect.translate(-100, -100).rotateZ(180).opacity(1).step();
 animationTranspond.translate(-140, 0).rotateZ(180).opacity(1).step();
 animationInput.translate(-100, 100).rotateZ(180).opacity(1).step();
 this.setData({
 animationPlus: animationPlus.export(),
 animationcollect: animationcollect.export(),
 animationTranspond: animationTranspond.export(),
 animationInput: animationInput.export(),
 })
}
//收回动画
function takeback() {
 //plus逆时针旋转
 var animationPlus = wx.createAnimation({
 duration: 500,
 timingFunction: 'ease-out'
 })
 var animationcollect = wx.createAnimation({
 duration: 500,
 timingFunction: 'ease-out'
 })
 var animationTranspond = wx.createAnimation({
 duration: 500,
 timingFunction: 'ease-out'
 })
 var animationInput = wx.createAnimation({
 duration: 500,
 timingFunction: 'ease-out'
 })
 animationPlus.rotateZ(0).step();
 animationcollect.translate(0, 0).rotateZ(0).opacity(0).step();
 animationTranspond.translate(0, 0).rotateZ(0).opacity(0).step();
 animationInput.translate(0, 0).rotateZ(0).opacity(0).step();
 this.setData({
 animationPlus: animationPlus.export(),
 animationcollect: animationcollect.export(),
 animationTranspond: animationTranspond.export(),
 animationInput: animationInput.export(),
 })
}

2.index.wxml

<!--index.wxml-->
<image src="../../images/collect.png" animation="{{animationcollect}}" class="image-style" bindtap="collect"></image>
<image src="../../images/transpond.png" animation="{{animationTranspond}}" class="image-style" bindtap="transpond"></image>
<image src="../../images/input.png" animation="{{animationInput}}" class="image-style" bindtap="input"></image>
<image src="../../images/plus.png" animation="{{animationPlus}}" class="image-plus-style" bindtap="plus"></image>

3.index.wxss

/**index.wxss**/

.image-style {
 height: 150rpx;
 width: 150rpx;
 position: absolute;
 bottom: 250rpx;
 right: 100rpx;
 opacity: 0;
}

.image-plus-style {
 height: 150rpx;
 width: 150rpx;
 position: absolute;
 bottom: 250rpx;
 right: 100rpx;
 z-index: 100;
}

demo代码下载

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用Javascript数组处理多个字符串的连接问题
Aug 20 Javascript
JavaScript NaN和Infinity特殊值 [译]
Sep 20 Javascript
JS打开新窗口的2种方式
Apr 18 Javascript
jQuery使用$.ajax进行即时验证实例详解
Dec 11 Javascript
sencha ext js 6 快速入门(必看)
Jun 01 Javascript
jquery 判断selection range 是否在容器中的简单实例
Aug 02 Javascript
JavaScript奇技淫巧44招【实用】
Dec 11 Javascript
React进阶学习之组件的解耦之道
Aug 07 Javascript
Vue使用mixins实现压缩图片代码
Mar 14 Javascript
浅谈Vue下使用百度地图的简易方法
Mar 23 Javascript
electron实现qq快捷登录的方法示例
Oct 22 Javascript
d3.js实现图形拖拽
Dec 19 Javascript
微信小程序实现之手势锁功能实例代码
Jul 19 #Javascript
React组件重构之嵌套+继承及高阶组件详解
Jul 19 #Javascript
微信小程序实现折叠展开效果
Jul 19 #Javascript
详解Angularjs 自定义指令中的数据绑定
Jul 19 #Javascript
微信小程序实现天气预报功能
Jul 18 #Javascript
vue代理和跨域问题的解决
Jul 18 #Javascript
小程序自定义组件实现城市选择功能
Jul 18 #Javascript
You might like
PHP设计聊天室步步通
2006/10/09 PHP
php session 错误
2009/05/21 PHP
php的sso单点登录实现方法
2015/01/08 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
jquery cookie的用法总结
2013/11/18 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
2016/06/20 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
2016/08/24 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
js实现三级联动效果(简单易懂)
2017/03/27 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
2017/06/20 jQuery
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
Python 元类使用说明
2009/12/18 Python
Python中为什么要用self探讨
2015/04/14 Python
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
详解python3中socket套接字的编码问题解决
2017/07/01 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
python利用有道翻译实现&quot;语言翻译器&quot;的功能实例
2017/11/14 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
详解python对象之间的交互
2020/09/29 Python
个人简历自我鉴定
2013/10/11 职场文书
运动会广播稿300字
2014/01/10 职场文书
职工小家建设活动方案
2014/08/25 职场文书
家庭教育的心得体会
2014/09/01 职场文书
办公室文员工作自我鉴定
2014/09/19 职场文书
财务检查整改报告
2014/11/06 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书