微信小程序实现弹出菜单


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 相关文章推荐
js下获取div中的数据的原理分析
Apr 07 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
Oct 30 Javascript
setTimeout()与setInterval()方法区别介绍
Dec 24 Javascript
自己使用jquery写的一个无缝滚动的插件
Apr 30 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
Jun 20 Javascript
利用JS轻松实现获取表单数据
Dec 06 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
Jan 11 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
Feb 14 Javascript
详解Angular-Cli中引用第三方库
May 21 Javascript
在axios中使用params传参的时候传入数组的方法
Sep 25 Javascript
微信小程序实现张图片合成为一张并下载
Jul 16 Javascript
vue中是怎样监听数组变化的
Oct 24 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高自定义性安全验证码代码
2011/11/27 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
php相对当前文件include其它文件的方法
2015/03/13 PHP
深入了解PHP中的Array数组和foreach
2016/11/06 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
Javascript解决常见浏览器兼容问题的12种方法
2010/01/04 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
jQuery中:checked选择器用法实例
2015/01/04 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
2016/07/02 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
python实现dijkstra最短路由算法
2019/01/17 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
2020/09/21 Python
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
YSL圣罗兰美妆英国官网:Yves Saint Laurent Beauty UK
2019/08/03 全球购物
学习心得体会
2014/01/01 职场文书
工程质量保证书
2015/05/09 职场文书
mysql如何配置白名单访问
2021/06/30 MySQL