原文:微信小程序把玩(四十)animation API

动画水还是比较深的,这里只是简单介绍下小程序中动画的一些属性和注意事项,做动画前一定要整理好思路将动画一步步分解,再进行组合!这里只做引入。

wx.createAnimation(object)

  • 看官方介绍

    • 1.创建一个动画实例animation。调用实例的方法来描述动画。最后通过动画实例的export方法导出动画数据传递给组件的animation属性。

    • 2.调用动画操作方法后要调用 step() 来表示一组动画完成,可以在一组动画中调用任意多个动画方法,一组动画中的所有动画会同时开始,一组动画完成后才会进行下一组动画。step 可以传入一个跟 wx.createAnimation() 一样的配置参数用于指定当前组动画的属性

这还是比较好理解的比如第一条对应代码animation: this.animation.export()

第二条比如缩放动画,也就说是一组scale,scaleX, scaleY…为一缩放动画组的一个动画方法,缩放动画组和旋转动画组通过step()链接,按顺序执行。代码中体验吧!看效果反过来看会更容易理解

主要属性:

这里主要树下timingFunction和transformOrigin

  • timingFunction 设置动画效果

    • linear 默认为linear 动画一直较为均匀
    • ease 开始时缓慢中间加速到快结束时减速
    • ease-in 开始的时候缓慢
    • ease-in-out 开始和结束时减速
    • ease-out 结束时减速
    • step-start 动画一开始就跳到 100% 直到动画持续时间结束 一闪而过
    • step-end 保持 0% 的样式直到动画持续时间结束 一闪而过
  • transformOrigin 设置动画的基点 默认%50 %50 0

    • left,center right是水平方向取值,对应的百分值为left=0%;center=50%;right=100%
    • top center bottom是垂直方向的取值,其中top=0%;center=50%;bottom=100%

动画组及动画方法

样式:

旋转:

缩放:

偏移:

倾斜:

矩阵变形:

演示单个动画组效果

wxml


  1. <view class="container">
  2. <view animation="{{animation}}" class="view">我在做动画</view>
  3. </view>
  4. <button type="primary" bindtap="rotate">旋转</button>

js

  1. Page({
  2. data:{
  3. text:"Page animation",
  4. animation: ''
  5. },
  6. onLoad:function(options){
  7. // 页面初始化 options为页面跳转所带来的参数
  8. },
  9. onReady:function(){
  10. // 页面渲染完成
  11. //实例化一个动画
  12. this.animation = wx.createAnimation({
  13. // 动画持续时间,单位ms,默认值 400
  14. duration: 1000,
  15. /**
  16. * http://cubic-bezier.com/#0,0,.58,1
  17. * linear 动画一直较为均匀
  18. * ease 从匀速到加速在到匀速
  19. * ease-in 缓慢到匀速
  20. * ease-in-out 从缓慢到匀速再到缓慢
  21. *
  22. * http://www.tuicool.com/articles/neqMVr
  23. * step-start 动画一开始就跳到 100% 直到动画持续时间结束 一闪而过
  24. * step-end 保持 0% 的样式直到动画持续时间结束 一闪而过
  25. */
  26. timingFunction: 'linear',
  27. // 延迟多长时间开始
  28. delay: 100,
  29. /**
  30. * 以什么为基点做动画 效果自己演示
  31. * left,center right是水平方向取值,对应的百分值为left=0%;center=50%;right=100%
  32. * top center bottom是垂直方向的取值,其中top=0%;center=50%;bottom=100%
  33. */
  34. transformOrigin: 'left top 0',
  35. success: function(res) {
  36. console.log(res)
  37. }
  38. })
  39. },
  40. /**
  41. * 旋转
  42. */
  43. rotate: function() {
  44. //顺时针旋转10度
  45. //
  46. this.animation.rotate(150).step()
  47. this.setData({
  48. //输出动画
  49. animation: this.animation.export()
  50. })
  51. },
  52. onShow:function(){
  53. // 页面显示
  54. },
  55. onHide:function(){
  56. // 页面隐藏
  57. },
  58. onUnload:function(){
  59. // 页面关闭
  60. }
  61. })

演示多个动画组效果

这里我们只需要更改以下代码即可

  1. /**
  2. * 旋转
  3. */
  4. rotate: function() {
  5. //两个动画组 一定要以step()结尾
  6. /**
  7. * 动画顺序 顺时针旋转150度>x,y 放大二倍>x,y平移10px>x,y顺时针倾斜>改变样式和设置宽度宽度
  8. */
  9. this.animation.rotate(150).step().scale(2).step().translate(10).step().skew(10).step().opacity(0.5).width(10).step({ducation: 8000})
  10. this.setData({
  11. //输出动画
  12. animation: this.animation.export()
  13. })
  14. }

微信小程序把玩(四十)animation API的更多相关文章

  1. 微信小程序把玩(十四)button组件

    原文:微信小程序把玩(十四)button组件 button按钮用的算是最普遍的组件之一. 主要属性: wxml <!--按钮默认样式,点击事件--> <button type=&qu ...

  2. 微信小程序把玩(十九)radio组件

    原文:微信小程序把玩(十九)radio组件 radio组件为单选组件与radio-group组合使用,使用方式和checkbox没啥区别 主要属性: wxml <!--设置监听器,当点击radi ...

  3. 微信小程序把玩(十八)picker组件

    原文:微信小程序把玩(十八)picker组件 picker选择器分为三种,普通选择器,时间选择器, 日期选择器 用mode属性区分,默认是普通选择器.测试时时间和日期点击无反应不知道是BUG还是啥!没 ...

  4. 微信小程序把玩(十五)checkbox组件

    原文:微信小程序把玩(十五)checkbox组件 不得不吐糟下checkbox默认样式真是有点略丑!!!checkbox组件为一个多选框被放到checkbox-group组中,并在checkbox-g ...

  5. 微信小程序把玩(十六)form组件

    原文:微信小程序把玩(十六)form组件 form表单组件 是提交form内的所有选中属性的值,注意每个form表单内的组件都必须有name属性指定否则提交不上去,button中的type两个subm ...

  6. 微信小程序把玩(十二)text组件

    原文:微信小程序把玩(十二)text组件 通常文本设置要不在wxml中设置,再要不就是通过weml绑定在js中设置文字. wxml <view > <text>我是文本组件&l ...

  7. 微信小程序把玩(十)swiper组件

    原文:微信小程序把玩(十)swiper组件 Android写过轮播图的痛楚只有写过的知道,相对还是比较麻烦的,并没有一个轮播图组件,有个ViewPage也需要自己定制,IOS则多用UIScroller ...

  8. 微信小程序把玩(三十四)Audio API

    原文:微信小程序把玩(三十四)Audio API 没啥可值得太注意的地方 重要属性: 1. wx.getBackgroundAudioPlayerState(object) 获取播放状态 2.wx.p ...

  9. 微信小程序把玩(三十八)获取设备信息 API

    原文:微信小程序把玩(三十八)获取设备信息 API 获取设备信息这里分为四种, 主要属性: 网络信息wx.getNetWorkType, 系统信息wx.getSystemInfo, 重力感应数据wx. ...

随机推荐

  1. Xcode编译Undefined symbols for architecture xxx 错误总结

    可能会遇到这几种错误:Undefined symbols for architecture armv7Undefined symbols for architecture armv7sUndefine ...

  2. NSNull 和 nil 的判断

    情况1. 等于Null if ([_content isEqual:[NSNull null]] ) { //等于Null } 情况2.  等于nil if (_content==nil || [_c ...

  3. Mochiweb的设计分析

    http://blog.csdn.net/dp0304/article/details/6994435 Web服务器的基本工作大致分3步: 接收HTTP请求: 处理HTTP请求,生成响应内容: 发送响 ...

  4. 个人官网第8次升级(新功能、用户体验、修复bug、系统优化)

    1.新功能. 操作日志和搜索日志的Excel报表下载. 2.用户体验. 如果是通过搜索,进入到一篇内容, 搜索关键词需要高亮. 比如,搜索"程序员"出现若干内容链接,打开链接的页面 ...

  5. Java爬虫框架WebMagic入门——爬取列表类网站文章

    初学爬虫,WebMagic作为一个Java开发的爬虫框架很容易上手,下面就通过一个简单的小例子来看一下. WebMagic框架简介 WebMagic框架包含四个组件,PageProcessor.Sch ...

  6. Vuex的一个易错点

    好长时间不用Vuex,发现有些东西记模糊了. 在对Vuex进行模块化开发的时候, const store = new Vuex.Store({ modules: { a: moduleA, b: mo ...

  7. [think in java] 第8章 多态

    多态 "封装"通过合并特征和行为来创建新的数据类型. "多态"的作用则是消除类型之间的耦合关系. 方法调用绑定 定义:将一个方法调用同一个方法主题关联起来被称为 ...

  8. 在项目中使用CLR规划

    1.创建自己的项目 2.对"解..."→参加→目→C#→数据库→SQL Server项目,例如以下图所看到的: 3.选择操作数据库 4.创建存储过程 5.代码(详见:CLR存储过程 ...

  9. BS_OWNERDRAW风格的作用和例子(值得研究,待续)

    TBitBtn就是一个例子: procedure TBitBtn.CreateParams(var Params: TCreateParams); begin inherited CreatePara ...

  10. Spring实战5-基于Spring构建Web应用

    主要内容 将web请求映射到Spring控制器 绑定form参数 验证表单提交的参数 写在前面:关于Java Web,首先推荐一篇文章——写给java web一年左右工作经验的人,这篇文章的作者用精练 ...