【问题标题】:Animating simple v-if directive in Vue在 Vue 中为简单的 v-if 指令设置动画
【发布时间】:2018-07-30 19:02:52
【问题描述】:

当一个 div 被删除/销毁时,是否可以为 v-if 条件设置动画,更具体地说是“淡出”?

我有最基本的条件:

<template v-if="initProxy">
  <div class="page__boot">
  <div>
</template>

在我的组件data 属性中,当我将initProxy 设置为false 时,我想在渲染的div 被销毁之前将其淡出,而不是突然消失。我知道我错过了一些如此微不足道的...建议?

【问题讨论】:

    标签: javascript vue.js rendering frontend


    【解决方案1】:

    你应该遵循这个基本的example

    <template>
      <transition name="fade">
        <div class="page__boot" v-if="initProxy">
        <div>
      </transition>
    </template>
    

    并调整你的动画:

    .fade-enter-active, .fade-leave-active {
      transition: opacity .5s;
    }
    .fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
      opacity: 0;
    }
    

    您还可以更改 .fade-leave-active 的持续时间

    【讨论】:

    • 我在 template el 上使用了 v-if 指令是有原因的。当直接在一个元素上使用v-if 时,它会在 dom 中留下一个 &lt;––––&gt; 来代替不存在的 div。
    • @JaredGarcia 在这种情况下你应该使用 v-show 而不是 v-if,然后它会渲染整个组件,但它是不可见的,并且使用 v-if 你有 因为组件没有被渲染。但是您仍然应该使用 作为父级。所以复制 -> 粘贴而不是 v-if 使用 v-show。
    • 我不想使用 v-show ,因为它会将元素保留在 DOM 中。我要删除它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 2017-07-24
    • 2015-08-04
    • 2019-05-22
    • 1970-01-01
    • 2020-10-09
    相关资源
    最近更新 更多