微信小程序怎么制作旋转动画

2018-05-15 17:24

摘要:微信小程序自带的API中带有这么一个动画组件,因此小程序制作旋转动画可以使用image+Animat

微信小程序被给予的能量是无穷的,在小程序发展逐渐成熟的当下,小程序开发能实现的需求越来越完善。最近小程序中有一个图片旋转的需求,在微信小程序上是可以通过切换多张图片达到旋转的效果,但微信小程序自带的API中带有这么一个动画组件,因此小程序制作旋转动画可以使用image+Animation来实现。

首先在wxml中定义image


注意其中的animation属性,image就由它来实现动画。

{{animation}}我们在jsdata中定义

data: {

animation: \'\'

},

相关代码

var _animation;

var _animationIndex

const _ANIMATION_TIME = 500;

pages {

...

onShow: function () {

_animation =wx.createAnimation({

duration:_ANIMATION_TIME,

timingFunction: \'linear\',//linear,ease,ease-in,ease-in-out,ease-out,step-start,step-end

delay: 0,

transformOrigin:\'50% 50% 0\'

})

},

/**

* 实现image旋转动画,每次旋转 120*n

*/

rotateAni: function (n){

_animation.rotate(120* (n)).step()

this.setData({

animation:_animation.export()

})

},

/**

* 开始旋转

*/

startAnimationInterval:function () {

var that = this;

that.rotateAni(++_loadImagePathIndex); // 进行一次旋转

_animationIntervalId =setInterval(function () {

that.rotateAni(++_loadImagePathIndex);

},  _ANIMATION_TIME); // 没间隔_ANIMATION_TIME进行一次旋转

},

/**

* 停止旋转

*/

stopAnimationInterval:function () {

if (_animationIntervalId> 0) {

clearInterval(_animationIntervalId);

_animationIntervalId= 0;

}

},

}

微信自带的Animation可以实现一次动画,然后可以通过setInterval来达到不断旋转的目的,在使用时,控制startAnimationIntervalstopAnimationInterval即可。

微信小程序怎么制作旋转动画

在使用animation时,会发现有时候出现旋转速度很快或者反向旋转再正向旋转的清空,这都是由于rotate的值设置有问题。

1、rotate的值应该是上一次结束时的值,

2、如果设置了全局变量,记得在oncreate时初始化,不然第二次打开同一页面会有问题。

注意事项:

这里为什么不直接给_animation.rotate(120 * (n)).step()设置一个足够大的值,原因有两点:

1、我们需要便利的控制开始和停止,

2、animation在小程序进入后台后,会持续运行,占用手机内存和cpu,而小程序依赖于微信,在iphone上会导致微信被终止运行


推荐阅读:微信小程序通过什么方法可以检测数据变化    微信小程序开发教程 

参与讨论

发表评论

扫码添加专属客服即可随时咨询

还可领取小程序推广攻略

咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部