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


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 相关文章推荐
JQUERY设置IFRAME的SRC值的代码
Nov 30 Javascript
更快的异步执行(setTimeout多浏览器)
Aug 12 Javascript
详解JavaScript中数组的相关知识
Jul 29 Javascript
JS获取数组最大值、最小值及长度的方法
Nov 24 Javascript
JavaScript必知必会(六) delete in instanceof
Jun 08 Javascript
基于JavaScript实现树形下拉框
Aug 10 Javascript
jquery遍历标签中自定义的属性方法
Sep 17 Javascript
微信小程序 欢迎页面的制作(源码下载)
Jan 09 Javascript
基于ionic实现下拉刷新功能
May 10 Javascript
Angular路由ui-router配置详解
Aug 01 Javascript
简化版的vue-router实现思路详解
Oct 19 Javascript
微信小程序使用前置摄像头拍照
Oct 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
example2.php
2006/10/09 PHP
PHP memcache扩展的三种安装方法
2009/04/26 PHP
php 购物车的例子
2009/05/04 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
AngularJS基础 ng-selected 指令简单示例
2016/08/03 Javascript
JavaScript SHA1加密算法实现详细代码
2016/10/06 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
2016/12/27 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
JavaScript实现留言板案例
2020/03/17 Javascript
理解Python垃圾回收机制
2016/02/12 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
python 制作本地应用搜索工具
2021/02/27 Python
办公室人员先进事迹
2014/01/27 职场文书
模具数控专业自荐信
2014/01/27 职场文书
贺卡寄语大全
2014/04/11 职场文书
护林防火标语
2014/06/27 职场文书
购房委托书
2014/10/15 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
青年志愿者活动感想
2015/08/07 职场文书
Sql-Server数据库单表查询 4.3实验课
2021/04/05 SQL Server
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL