微信小程序动画(Animation)的实现及执行步骤


Posted in Javascript onOctober 28, 2018

简单总结一下微信动画的实现及执行步骤。

一、实现方式

官方文档是这样说的:①创建一个动画实例 animation。②调用实例的方法来描述动画。③最后通过动画实例的 export 方法导出动画数据传递给组件的 animation 属性。

因为小程序是数据驱动的,给这句话加上数字标注分为三步:

微信小程序动画(Animation)的实现及执行步骤

前两步是定义一个动画并设置都要干什么,然后把这个设置好的“规则”扔给界面上的某个元素,让它按照这个规则执行。

当然如果有多个元素的animation="{{ani}}",也都会执行这个动画规则。

二、用例子说话

新建一个小程序,把没用的删掉修改一下,做个简单例子,上图

微信小程序动画(Animation)的实现及执行步骤

代码如下:

index.wxml,一个helloworld,一个按钮

<view class="container">
 <view class="usermotto" animation="{{ani}}">
  <text class="user-motto">{{motto}}</text>
 </view>
 <button bindtap='start'>动画</button>
</view>

index.wxss, 为了看着方便加了个边框

.usermotto {
 margin-top: 100px;
 border: solid;
}

index.js

Page({
 data: {
  motto: 'Hello World',
 },
 start:function(){
  var animation = wx.createAnimation({
   duration: 4000,
   timingFunction: 'ease',
   delay: 1000
  });
  animation.opacity(0.2).translate(100, -100).step()
  this.setData({
   ani: animation.export()
  })
 }
})

 三、相关参数及方法

简单介绍一下例子中的几个参数和方法(其他的详见官方文档):

      duration: 动画持续多少毫秒
      timingFunction: “运动”的方式,例子中的 'ease'代表动画以低速开始,然后加快,在结束前变慢 
      delay: 多久后动画开始运行

      opacity(0.2) 慢慢变透明

      translate(100, -100) 向X轴移动100的同时向Y轴移动-100

      step(): 一组动画完成,例如想让上例中的HelloWorld向右上方移动并变透明后,再次向左移动50可以继续写 animation.translateX( -50).step() , 作用就是向右上方移动和变透明是同时进行, 这两种变化完成之后才会进行向左运行的一步。

例子:Github

总结

以上所述是小编给大家介绍的微信小程序动画(Animation)的实现及执行步骤,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
测试JavaScript字符串处理性能的代码
Dec 07 Javascript
Jquery 点击按钮显示和隐藏层的代码
Jul 25 Javascript
js bind 函数 使用闭包保存执行上下文
Dec 26 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
Jan 26 Javascript
javascript检测两个数组是否相似
May 19 Javascript
jquery简单实现外部链接用新窗口打开的方法
May 30 Javascript
大白话讲解JavaScript的Promise
Apr 06 Javascript
js+css实现红包雨效果
Jul 12 Javascript
Element ui 下拉多选时新增一个选择所有的选项
Aug 21 Javascript
javascript/jquery实现点击触发事件的方法分析
Nov 11 jQuery
JS实现简易计算器
Feb 14 Javascript
你不知道的 TypeScript 高级类型(小结)
Aug 28 Javascript
又拍云 Node.js 实现文件上传、删除功能
Oct 28 #Javascript
javascript中函数的写法实例代码详解
Oct 28 #Javascript
vue项目中实现图片预览的公用组件功能
Oct 26 #Javascript
Node.js 使用axios读写influxDB的方法示例
Oct 26 #Javascript
vue中使用protobuf的过程记录
Oct 26 #Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
Oct 26 #Javascript
Javascript中弹窗confirm与prompt的区别
Oct 26 #Javascript
You might like
php单件模式结合命令链模式使用说明
2008/09/07 PHP
网页游戏开发入门教程三(简单程序应用)
2009/11/02 PHP
php 读取文件乱码问题
2010/02/20 PHP
PHP redis实现超迷你全文检索
2017/03/04 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
jquery checkbox全选、取消全选实现代码
2010/03/05 Javascript
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
jQuery获取上传文件的名称的正则表达式
2015/05/21 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
Vue瀑布流插件的使用示例
2018/09/19 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
vue中touch和click共存的解决方式
2020/07/28 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
python 文件操作api(文件操作函数)
2016/08/28 Python
Python MySQL数据库连接池组件pymysqlpool详解
2017/07/07 Python
python xlsxwriter创建excel图表的方法
2018/06/11 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
详解重置Django migration的常见方式
2019/02/15 Python
餐饮主管岗位职责
2013/12/10 职场文书
校园奶茶店创业计划书
2014/01/23 职场文书
班风口号
2014/06/18 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
合理化建议书范文
2015/09/14 职场文书