返回

专注连锁门店会员营销管理系统

线上+线下+进销存+收银+会员
HiShop > Hi小程序 > 小程序开发 > 官方文档 >

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

2018-09-28 作者:黄珊

摘要:微信小程序自带的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上会导致微信被终止运行


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

线上+线下+进销存+收银+会员门店零售管理好帮手

  • 极速收银管理

    门店能实现快速收银,提升门店经营效率。

  • 进销存管理

    系统自带进销存管理,更好管理库存销售。

  • 软硬件一体化

    配备收银硬件一站式整体服务。

收 银 会员管理 库存管理 商品管理 交接班 数据报表 营销促单 售后处理 多种收款

获取报价

推荐文章

门店系统 获取报价 立即咨询 免费试用