【问题标题】:Vue.js transition class disappearing before animation has finishedVue.js 过渡类在动画完成之前消失
【发布时间】:2017-09-21 02:35:26
【问题描述】:

我创建了一个 Vue 组件,它使用 javascript 钩子作为转换来调用velocity.js 并为我的组件设置动画。

https://www.webpackbin.com/bins/-KiUnEo0HaCp3J4nQ9Gw

组件的slideDown 工作正常。但是,当v-on:leave 启动时。似乎显示CSS 属性立即设置为display: none,因此我的slideUp 动画没有显示。

我猜这是因为过渡动画持续时间未知,因此只是在显示 noneblock 之间切换。

我怎样才能解决这个问题?

谢谢。

【问题讨论】:

    标签: animation vue.js vuejs2 vue-component


    【解决方案1】:

    在 AccordionItem.vue 中,由于您没有使用 CSS 进行转换,因此您需要接受来自 Vue 的回调,并在转换完成时让 Velocity 通知它。

    简单地说:

    leave(e, done) {
      Velocity(e, 'slideUp', { duration: 250, complete: done });
    }
    

    你可以看到它在工作here

    Vue 文档的 section 解释说:

    使用纯 JavaScript 转换时,enterleave 挂钩需要 done 回调。否则,它们将被同步调用,并且过渡将立即完成。

    【讨论】:

    • 阅读该部分,感谢您的帮助!这非常有效。
    猜你喜欢
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 2018-07-14
    相关资源
    最近更新 更多