在 VUE CLI 中使用 this.router.push 跟踪动画结束的过渡

Transition using this.router.push with tracking end of animation in VUE CLI

非常希望得到您的帮助!我是初学者,这是我第一次创建 Web 应用程序。

我使用 Vue Cli,有一个 lottie 元素应该通过点击动画(我做到了),然后我应该去“其他页面”(我做到了)但是,我如何实现只有在动画结束后才过渡到页面?帮助!不客气!对于动画,我使用 Anime.js

<script>
import { translate } from '../js/animate'

export default {
  methods: {
    go () {
      translate(this.$refs.square)
      this.$router.push('Comprestore')
    }
  }
}
</script>
/vue

<template>
  <div id="animate" v-on:click = "go" ref="square">
    <app-lottie></app-lottie>
  </div>
</template>

<style scoped>
</style>

import anime from 'animejs'

export function translate (element) {
  anime({
    targets: element,
    translateX: 500
  })
}

您可以使用complete回调等待动画完成。

现在您的代码可能如下所示:

...
  go () {
    translate(this.$refs.square, () => {
      this.$router.push('Comprestore')
    })
  }
...

export function translate (element, callback) {
  anime({
    targets: element,
    translateX: 500,
    complete: callback
  })
}

我创建了示例here

在示例中,我还通过使用 Vue 内置 transition 在页面之间进行转换来使用页面转换。参见 Enter/Leave & List Transitions and Transitions in Vue Router