使用wx:for的多个view,绑定animation,怎么单独触发动画
发布于 5 年前 作者 yujie 19898 次浏览 来自 问答

使用wx:for的多个view,绑定animation,怎么单独触发动画。

现在的效果是单击其中一个view,所有view一起动,有没有怎么解决思路。

6 回复

老哥说的对

非要用那个createanimation的话我觉得两种方法,第一种就是和上面那个一样不是有个index,你给他绑定个fun然后

<block wx:for="{{array}}">

<view animation="{{tabindex==index?'animate':''}}" bindtap="changeIndex" data-index="{{index}}"></view>

</block>

changeIndex这个fun里设置appdata tabindex==当前点击下标,然后同时调取createainmation   因为这个api生成动画会清除以前的动画,不用考虑是否会重复执行,第2种的话是差不多的东西,每个数组元素多个animation 和isStart,差不多一样的东西,不说了

<view animation="{{tabindex==index?'animate':''}}" bindtap="changeIndex" data-index="{{index}}"></view>

</block>

//应该把'animate':''  改为animate,因为 取得是对象,不是字符串

var _this = this

var index = event.currentTarget.dataset.index

var animation1 = wx.createAnimation({

duration: 1000,

timingFunction: ‘ease-in’,

})

//缩放动画

animation1.scale3d(0.001, 0.001, 0.001).step()

this.setData({

tabindex: index

})

this.setData({

animationData: animation1.export()

})



如果非要用微信的animation,怎么玩呢

好想法,我试试。

<block wx:for="{{array}}">

<view class="{{tabindex==index?‘animate’:’’}}" bindtap=“changeIndex” data-index="{{index}}"></view>

</block>

给一组绑定事件,点击之后改变appData的tabindex为当前的data-index就可以了相当于当前点击的添加animate

回到顶部