最近在项目中遇到一个需求,就是需要在微信小程序做一个持续旋转的动作,在开发过程中发现了一些问题,比如如何持续旋转,计时器为什么清除了还是会快速旋转动画。
本来最先考虑用关键帧做动画,但是在编译的过程中出错了,所以最终使用了wx.createAnimation来实现,下面贴下代码(本代码是基于mpvue写的),希望对遇到同样坑的人有点帮助:
onShow () {
this.animate = wx.createAnimation({
duration: 1000
})
const that = this
if (that.timer) {
clearInterval(that.timer)
}
that.timer = setInterval(function () {
that.n = that.n + 1
that.animate.rotateY(45 * that.n).step()
that.myRotate = that.animate.export()
}, 1000)
},
onUnload () {
this.n = 0
clearInterval(this.timer)
this.animate.rotateY(0).step()
this.myRotate = this.animate.export()
},
重点就在onUnload里面,退出页面清楚定时器,还需要重置动画。官方没说清楚,搞的我加班到现在。。。。呵,程序员~~~
网友评论