您当前的位置:首页 > 知识百科 

微信小程序动画循环如何实现?

时间:2023-07-01 14:05 阅读数:89人阅读

  微信小程序动画循环如何实现?小程序里面的动画效果肯定比静态图片更加生动化,更加吸引人注意,那么怎么实现这种动画呢?下面一起看看微信小程序动画循环如何实现?

  微信小程序动画循环如何实现?

  微信小程序提供了实现动画的api——animation,但却不能循环播放,都是一次*的,动完就Over了,下面提供一个用微信小程序的animation来实现循环动画的玩具,抛砖引玉,希望大家能想出更好的方法来实现真正的循环。说是玩具是因为这个循环动画通过js脚本的setInterval来实现的,但'setInterval'在实际运行中会出现越来越严重的延迟,这是由于js的单线程运行模式所决定的,所以动画间隙并不是那么流畅,所以先用用吧。

  小程序页面截图如下:

  实现动画效果的小程序代码:

  小程序wxml:

  小程序js:

  onReady: function () {

  // 页面渲染完成

  // 实例化一个动画

  var that = this;

  var i = 0

  var ii = 0

  var animationData = wx.createAnimation({

  duration: 1000, // 默认为400 动画持续时间,单位ms

  timingFunction: 'ease-in-out',

  //transformOrigin: '4px 91px'

  });

  var animationCloudData = wx.createAnimation({

  duration: 1000, // 默认为400 动画持续时间,单位ms

  timingFunction: 'ease-in-out',

  //transformOrigin: '4px 91px'

  });

  // 顺序执行,当已经执行完上面的代码就会开启定时器

  // 循环执行代码

  //dotAnFun = setInterval(function () {});

  /*setInterval(function () {

  // 动画脚本定义

  //animationData.rotate(6 * (++i)).step()

  //animationData.scale(2, 2).rotate(45).step().scale(1, 1).step();

  animationData.translateY(10).step({ duration: 500 }).translateY(-10).step({ duration: 500 });

  // 更新数据

  that.setData({

  // 导出动画示例

  animationData: animationData.export(),

  //animationCloudData: animationCloudData.export(),

  })

  ++i;

  console.log(i);

  }.bind(that), 2000);//循环时间 这里1000是1秒

  */

  //动画的脚本定义必须每次都重新生成,不能放在循环外

  animationCloudData.translateX(200).step({ duration: 5000 }).translateX(0).step({ duration: 5000 });

  // 更新数据

  that.setData({

  // 导出动画示例

  //animationData: animationData.export(),

  animationCloudData: animationCloudData.export(),

  })

  setInterval(function () {

  //动画的脚本定义必须每次都重新生成,不能放在循环外

  animationCloudData.translateX(300).step({ duration: 5000 }).translateX(-100).step({ duration: 5000 });

  // 更新数据

  that.setData({

  // 导出动画示例

  //animationData: animationData.export(),

  animationCloudData: animationCloudData.export(),

  })

  ++ii;

  console.log(ii);

  }.bind(that),10000);//3000这里的设置如果小于动画step的持续时间的话会导致执行一半后出错

  }

  小程序wxss:

  .clouds{

  margin-top:320rpx;

  }

  .yun1{

  width:320rpx;

  height: 120rpx;

  }

  以上就是微信小程序动画循环如何实现?的全部内容了,上面的动画只能是暂时的解决了动画不能循环的效果,所以还希望大家找到更完美的解决办法。感谢大家的阅读,欢迎关注微小乔。

相关推荐:

微信小程序示例:滚动动画、点击事件及评分星星详解

微信小程序自定义loading组件显示载入动画方法

微信小程序平移动画怎么开发