微信小程序动画(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 相关文章推荐
再说AutoComplete自动补全之实现原理
Nov 05 Javascript
动态显示可输入的字数提示还可以输入的字数
Apr 01 Javascript
node.js实现逐行读取文件内容的代码
Jun 27 Javascript
node.js中的fs.renameSync方法使用说明
Dec 16 Javascript
Javascript闭包用法实例分析
Jan 23 Javascript
基于JavaScript实现动态添加删除表格的行
Feb 01 Javascript
jquery.cookie.js的介绍与使用方法
Feb 09 Javascript
微信小程序 页面跳转事件绑定的实例详解
Sep 20 Javascript
Angular4学习之Angular CLI的安装与使用教程
Jan 04 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
Aug 19 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
Oct 12 Javascript
vue 进阶之实现父子组件间的传值
Apr 26 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
第十一节 重载 [11]
2006/10/09 PHP
Cannot modify header information错误解决方法
2008/10/08 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
php对二维数组进行排序的简单实例
2013/12/19 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
View.post() 不靠谱的地方你知道多少
2017/08/29 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
[01:30]我们共输赢 完美世界城市挑战赛开启全新赛季
2019/04/19 DOTA
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
护士自我评价
2014/02/01 职场文书
2014年元旦联欢会活动策划方案
2014/02/16 职场文书
火锅店的活动方案
2014/08/15 职场文书
学习优秀党员杨宗兴先进事迹材料思想汇报
2014/09/14 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
2015年企业工作总结范文
2015/04/28 职场文书
小学入学感言
2015/08/01 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
MySQL的存储过程和相关函数
2022/04/26 MySQL