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


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 相关文章推荐
Javascript 判断Flash是否加载完成的代码
Apr 12 Javascript
jQuery ajax cache缓存问题
Jul 01 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
Aug 15 Javascript
jQuery层级选择器用法分析
Feb 10 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
Apr 05 Javascript
详解JavaScript中的自定义事件编写
May 10 Javascript
第五篇Bootstrap 排版
Jun 21 Javascript
angular.js之路由的选择方法
Sep 24 Javascript
Bootstrap实现各种进度条样式详解
Apr 13 Javascript
详解JS数值Number类型
Feb 07 Javascript
webpack4的迁移的使用方法
May 25 Javascript
vue实现百度搜索功能
Dec 28 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
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
MySQL的FIND_IN_SET函数使用方法分享
2012/03/27 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
php实现的SESSION类
2014/12/02 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
WordPress JQuery处理沙发头像
2009/06/22 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
详解vuex的简单使用
2018/03/12 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
JavaScript工具库MyTools详解
2020/01/01 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
进一步探究Python中的正则表达式
2015/04/28 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
python中Apriori算法实现讲解
2017/12/10 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
python通过实例讲解反射机制
2019/10/17 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
在python image 中实现安装中文字体
2020/05/16 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
什么是makefile? 如何编写makefile?
2012/08/08 面试题
离婚财产分配协议书
2014/10/21 职场文书
社区党员干部承诺书
2015/05/04 职场文书
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers