当前位置:   article > 正文

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

wx.createanimation

常规套路:
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

 

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

数据和逻辑 index.js

 

  1. Page({
  2. data: {
  3. animation:{}
  4. },
  5. onReady: function () {
  6. this.animation = wx.createAnimation({
  7. duration:600,
  8. timingFunction:'linear',
  9. delay:500
  10. })
  11. },
  12. rotateFn:function(){
  13. this.animation.rotate(150).scale(3).step({ ducation: 8000 })
  14. this.setData({
  15. animation: this.animation.export() //输出动画
  16. })
  17. }
  18. })

案例2

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

 

GIF.gif

 

  1. onReady: function () {
  2. this.animation = wx.createAnimation({
  3. duration: 100,
  4. timingFunction: 'linear',
  5. delay: 10,
  6. transformOrigin: '50% 0 0'
  7. })
  8. },
  9. onShow: function () {
  10. let next = true;
  11. setInterval(function () {
  12. if (next) {
  13. this.animation.scale(0.9).step();
  14. next = !next;
  15. } else {
  16. this.animation.scale(1).step();
  17. next = !next;
  18. }
  19. this.setData({ //输出动画
  20. animation: this.animation.export()
  21. })
  22. }.bind(this), 500)
  23. },


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/284119
推荐阅读
相关标签
  

闽ICP备14008679号