收藏
回答

animationend的使用问题

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug animation 工具 微信开发者工具 2.6.4

一个元素同时使用小程序animatiion的api和css3的animation动画,动画结束事件“animationend”可以被css3的动画结束触发,而不会被小程序animation的动画结束触发。


请问要怎么才能触发小程序animation接口的animationend事件呢?


以下是代码,使用的是mpvue框架


<template>

  <div class="barrage">

    <div class="barrageBox" :animation="animation" @animationend="animationend">

      <div class="barrageBoxInner" >

        aaaaaaaaaaaaaaa

      </div>

    </div>

  </div>

</template>


<script>

export default {

  data () {

    return {

      animation: ''

    }

  },

  mounted () {

    this.showAnimation()

  },

  methods: {

    showAnimation () {

      var animation = wx.createAnimation({

        duration: 10000

      })

      animation.translateY(-500).step()

      animation.translateY(0).opacity(0).step({duration: 0, timingFunction: 'step-start'})

      this.animation = animation.export()

    },

    animationend () {

      console.log('动画结束')

    }

  }

}

</script>


<style scoped>

  .barrage{

    position: absolute;

    top: 0;

    width: 75%;

    height: 55%;

    margin-left: 150rpx;

    z-index: 9;

  }

  .barrage .barrageBox{

    position: absolute;

    bottom: 0;

    width: auto;

    height: 70rpx;

    background: #0d6e7e;

    border-radius: 10rpx;

    border: 4rpx solid #243c65;

    opacity: 0;

    animation: opacity 3s linear;

    animation-fill-mode:forwards;

  }

  @keyframes opacity {

    0% {

      opacity: 0;

    }

    100% { 

      opacity: 1;

    }

  }

  .barrage .barrageBox .barrageBoxInner{

    width: auto;

    height: 65rpx;

    padding:0 30rpx;

    background: #01cee4;

    border-radius: 10rpx;

    color:#103665;

    font-size: 22rpx;

    text-align: center;

    line-height: 60rpx;

  }

</style>


回答关注问题邀请回答
收藏
登录 后发表内容