收藏
回答

bindtransitionend调用次数为不对

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug createAnimation 客户端 6.7.3 2.3.1

- 当前 Bug 的表现(可附上截图)

用createAnimation创建动画,bindtransitionend去接收动画完成的回调。step动画是2个,bindtransitionend却被调用了三次。



- 预期表现


- 复现路径


- 提供一个最简复现 Demo

doAnimation: function() {

this.opacityCount = 0;

var anim = wx.createAnimation({

});

anim.translate(0, 0).scale(1, 1).opacity(0).step({duration:1000, timingFunction:"linear"});

anim.translate(0, 0).scale(1, 1).opacity(1).step({ duration: 1000, timingFunction: "linear" });

this.setData({myanimation: anim.export()});

},


onAnimationEnd: function() {

//只加入了两个step动画,为何这个函数会被调用3次!!!

this.opacityCount++;

console.log("opacityCount:" + this.opacityCount);

},


回答关注问题邀请回答
收藏

3 个回答

  • 卢霄霄
    卢霄霄
    2018-10-24

    好奇怪。。translate算了一次,opacity算了一次。。。

    2018-10-24
    有用 1
    回复 2
    • 叮蛋
      叮蛋
      2018-10-25

      这问题微信会解决吗?

      2018-10-25
      回复
    • 卢霄霄
      卢霄霄
      2018-10-26回复叮蛋

      问得好。。不知道

      2018-10-26
      回复
  • 孙文德
    孙文德
    2018-11-13

    1、将demo中的bindtransitionend 换成bindanimationend后不触发事件了

    2、我自己的项目中,不用官方提供的var anim = wx.createAnimation({})去设置动画,单纯的写在css中,然后监听bindanimationend就只触发一次<view class='options  {{ selected ? "animation" : ""}}' bindanimationend='onAnimationEnd'></view>



    2018-11-13
    有用
    回复
  • 叮蛋
    叮蛋
    2018-10-26

    就没有官方人员来看看这个问题吗?

    2018-10-26
    有用
    回复
登录 后发表内容