在Vue过渡中使用v-leave CSS类有什么用?

时间:2017-10-25 06:01:19

标签: vue.js css-transitions

根据文档,只是探索将Vue过渡引入我的项目的可能性,在过渡过程中有六个类可以使用,v-leave就是其中之一,但似乎没有用于任何例子。

所以,我创建了一个简单的示例,如下所示,看它是如何工作的,似乎类v-leave被添加到元素但它没有任何效果?

有谁可以指出我做错了什么?

提前致谢。

new Vue({
  el: '#demo',
  data: {
    show: false 
  }
})
.v-leave {
  transform: translateY(50px);
}	
.v-leave-to {
  opacity: 0;
}
.v-leave-active{
  transition: all 1s ease;
}
.v-enter {
  opacity: 0;
}
.v-enter-to {
  opacity: 1;
}		
.v-enter-active {
  transition: opacity 1s ease;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.2/vue.min.js"></script>
<div id="demo">
  <button v-on:click="show = !show">
    Toggle
  </button>
  <transition>
    <p v-show="show">hello</p>
  </transition>
</div>

1 个答案:

答案 0 :(得分:1)

您应该执行以下操作以进入/离开:

HTML:

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.2/vue.min.js"></script>
<div id="demo">
   <button v-on:click="show = !show">
    Toggle
  </button>
  <transition name="fade">
    <p v-if="show">hello</p>
  </transition>
</div>

CSS:

.fade-enter-active, .fade-leave-active {
  transition: opacity .5s
}
.fade-enter, .fade-leave-to {
  opacity: 0
}

您的主要问题是为转换设置名称(在本例中为fade),然后从CSS中引用它。

official documentation Working example [here][1]

中有一个像你这样的优秀例子

修改

在文档中:

  

v-leave:休假的起始状态。离开时立即添加   触发过渡,在一帧之后删除。

  

v-leave-active:休假的活跃状态。 [...]此类可用于定义离开过渡的持续时间,延迟和缓动曲线

v-leave仅适用于detect转换的开始(并对其执行某些操作),但如果您使用它,则所需的效果渲染1帧。如果您想使用leave动画,则应使用leave-active指定持续时间和其他内容。

希望它有所帮助!