小程序 wx.createAnimation(Object object)使用方法

常规套路:
1.data 中声明动画:animation。data:{ animation:{} }
2.合适的时机创建一个动画实例animation。this.animation = wx.createAnimation({})
3.调用实例的方法来描述动画。简单点说就是设置各种动画属性值,例如:this.animation.rotate(150).scale(3)
4.调用动画操作方法后要调用 step()来表示一组动画完成,可以在一组动画中调用任意多个动画方法,一组动画中的所有动画会同时开始,step和 wx.createAnimation() 配置参数相同;
5.最后通过动画实例的export方法导出动画数据传递给组件的animation。就是动画输出啦,让他动起来
注意:export 方法每次调用后会清掉之前的动画操作

API

image.png

 

image.png

案例1

核心结构 index.wxml

 

<view  animation="{{animation}}">我在做动画</view>
<button bindtap="rotateFn">旋转</button>

数据和逻辑 index.js

 

Page({
  data: {
    animation:{}
  },
  onReady: function () {
    this.animation = wx.createAnimation({
        duration:600,
        timingFunction:'linear',
        delay:500
    })
  },
  rotateFn:function(){
      this.animation.rotate(150).scale(3).step({ ducation: 8000 }) 
      this.setData({  
          animation: this.animation.export()   //输出动画  
      })
  }
})

案例2

用定时器循环播放动画
效果如下:

 

GIF.gif

 

 onReady: function () {
    this.animation = wx.createAnimation({
      duration: 100,
      timingFunction: 'linear',
      delay: 10,
      transformOrigin: '50% 0 0'
    })    
  },
  onShow: function () {  
    let next = true;
    setInterval(function () {
      if (next) {
        this.animation.scale(0.9).step();
        next = !next;
      } else {
        this.animation.scale(1).step();
        next = !next;
      }
      this.setData({  //输出动画  
        animation: this.animation.export()
      })
    }.bind(this), 500)
  }, 


 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值