微信小程序实现弹出菜单动画


Posted in Javascript onJune 21, 2019

微信小程序动画之弹出菜单,供大家参考,具体内容如下

效果图

微信小程序实现弹出菜单动画

js:

Page({
 data: {
  isPopping: false,
  animPlus: {},
  animCollect: {},
  animTranspond: {},
  animInput: {},
  animCloud:{},
  aninWrite:{},
 },
 //点击弹出
 plus: function () {
  if (this.data.isPopping) {
   //缩回动画
   this.popp();
   this.setData({
    isPopping: false
   })
  } else if (!this.data.isPopping) {
   //弹出动画
   this.takeback();
   this.setData({
    isPopping: true
   })
  }
 },
 input: function () {
  console.log("input")
 },
 transpond: function () {
  console.log("transpond")
 },
 collect: function () {
  console.log("collect")
 },
 cloud:function(){
  console.log("cloud")
 },
 write: function () {
  console.log("cloud")
 },


 //弹出动画
 popp: function () {
  //plus顺时针旋转
  var animationPlus = wx.createAnimation({
   duration: 400,
   timingFunction: 'ease-out'
  })
  var animationcollect = wx.createAnimation({
   duration: 400,
   timingFunction: 'ease-out'
  })
  var animationTranspond = wx.createAnimation({
   duration: 400,
   timingFunction: 'ease-out'
  })
  var animationInput = wx.createAnimation({
   duration: 400,
   timingFunction: 'ease-out'
  })
  var animationCloud = wx.createAnimation({
   duration: 400,
   timingFunction: 'ease-out'
  })
  var animationWrite = wx.createAnimation({
   duration: 400,
   timingFunction: 'ease-out'
  })
  animationPlus.rotateZ(180).step();
  animationcollect.translate(-90, -100).rotateZ(180).opacity(1).step();
  animationTranspond.translate(-140, 0).rotateZ(180).opacity(1).step();
  animationInput.translate(-90, 100).rotateZ(180).opacity(1).step();
  animationCloud.translate(0, 135).rotateZ(180).opacity(1).step();
  animationWrite.translate(0, -135).rotateZ(180).opacity(1).step();
  this.setData({
   animPlus: animationPlus.export(),
   animCollect: animationcollect.export(),
   animTranspond: animationTranspond.export(),
   animInput: animationInput.export(),
   animCloud: animationCloud.export(),
   animWrite: animationWrite.export(),
  })
 },
 //收回动画
 takeback: function () {
  //plus逆时针旋转
  var animationPlus = wx.createAnimation({
   duration: 400,
   timingFunction: 'ease-out'
  })
  var animationcollect = wx.createAnimation({
   duration: 400,
   timingFunction: 'ease-out'
  })
  var animationTranspond = wx.createAnimation({
   duration: 400,
   timingFunction: 'ease-out'
  })
  var animationInput = wx.createAnimation({
   duration: 400,
   timingFunction: 'ease-out'
  })
  var animationCloud = wx.createAnimation({
   duration: 400,
   timingFunction: 'ease-out'
  })
  var animationWrite = wx.createAnimation({
   duration: 400,
   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();
  animationCloud.translate(0, 0).rotateZ(0).opacity(0).step();
  animationWrite.translate(0, 0).rotateZ(0).opacity(0).step();
  this.setData({
   animPlus: animationPlus.export(),
   animCollect: animationcollect.export(),
   animTranspond: animationTranspond.export(),
   animInput: animationInput.export(),
   animCloud: animationCloud.export(),
   animWrite: animationWrite.export(),
  })
 },


 onLoad: function (options) {
  // 生命周期函数--监听页面加载
 },
 onReady: function () {
  // 生命周期函数--监听页面初次渲染完成
 },
 onShow: function () {
  // 生命周期函数--监听页面显示
 },
 onHide: function () {
  // 生命周期函数--监听页面隐藏
 },
 onUnload: function () {
  // 生命周期函数--监听页面卸载
 },
 onPullDownRefresh: function () {
  // 页面相关事件处理函数--监听用户下拉动作
 },
 onReachBottom: function () {
  // 页面上拉触底事件的处理函数
 },
 onShareAppMessage: function () {
  // 用户点击右上角分享
  return {
   title: 'title', // 分享标题
   desc: 'desc', // 分享描述
   path: 'path' // 分享路径
  }
 }
})

wxml:

<view>
 <image src="../../image/1.png" class="img-style" animation="{{animWrite}}" bindtap="write"></image>
 <image src="../../image/4.png" class="img-style" animation="{{animCollect}}" bindtap="collect"></image>
 <image src="../../image/2.png" class="img-style" animation="{{animTranspond}}" bindtap="transpond"></image>
 <image src="../../image/3.png" class="img-style" animation="{{animInput}}" bindtap="input"></image>
 <image src="../../image/5.png" class="img-style" animation="{{animCloud}}" bindtap="cloud"></image>
 <image src="../../image/6.png" class="img-switch-style" animation="{{animPlus}}" bindtap="plus"></image>
</view>

wxss:

.img-switch-style {
 height: 120rpx;
 width: 120rpx;
 position: absolute;
 bottom: 250rpx;
 right: 100rpx;
 z-index: 100;
}
 
.img-style {
 height: 120rpx;
 width: 120rpx;
 position: absolute;
 bottom: 250rpx;
 right: 100rpx;
 opacity: 0;
}

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

Javascript 相关文章推荐
求解开jscript.encode代码的asp函数
Feb 28 Javascript
jquery validate.js表单验证的基本用法入门
May 13 Javascript
JS实现Enter键跳转及控件获得焦点
Aug 12 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
Jan 06 Javascript
JavaScript中消除闭包的一般方法介绍
Mar 16 Javascript
Javascript简写条件语句(推荐)
Jun 12 Javascript
jquery 多个radio的click事件实例
Dec 03 Javascript
JS检测数组类型的方法小结
Mar 14 Javascript
ES6新特性六:promise对象实例详解
Apr 21 Javascript
详解mpvue中小程序自定义导航组件开发指南
Feb 11 Javascript
vue中实现上传文件给后台实例详解
Aug 22 Javascript
JavaScript实现省市联动效果
Nov 22 Javascript
js类的继承定义与用法分析
Jun 21 #Javascript
js中值引用和地址引用实例分析
Jun 21 #Javascript
微信小程序实现消息框弹出动画
Apr 18 #Javascript
前端Electron新手入门教程详解
Jun 21 #Javascript
javascript实现自由编辑图片代码详解
Jun 21 #Javascript
JS中超越现实的匿名函数用法实例分析
Jun 21 #Javascript
微信小程序实现圆形进度条动画
Nov 18 #Javascript
You might like
用PHP中的 == 运算符进行字符串比较
2006/11/26 PHP
php引用传值实例详解学习
2013/11/06 PHP
yii操作session实例简介
2014/07/31 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
2020/05/02 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
关于js datetime的那点事
2011/11/15 Javascript
js三种排序算法分享
2012/08/16 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
jQuery拖动元素并对元素进行重新排序
2015/12/30 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
linux安装python修改默认python版本方法
2019/03/31 Python
python中return的返回和执行实例
2019/12/24 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
办理生育手续介绍信
2014/01/14 职场文书
房地产营销策划方案
2014/02/08 职场文书
经典广告词大全
2014/03/14 职场文书
期末学生评语大全
2014/04/24 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
搞笑的获奖感言
2014/08/16 职场文书
给老婆道歉的话
2015/01/20 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
html5调用摄像头截图功能
2022/01/18 Javascript
一文了解MySQL二级索引的查询过程
2022/02/24 MySQL
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript