先来看官网给的经典例子:

<div id="demo">
  <button v-on:click="show = !show">
    Toggle
  </button>
  <transition name="fade">
    <p v-if="show">hello</p>
  </transition>
</div>
new Vue({
  el: '#demo',
  data: {
    show: true
  }
})
.fade-enter-active, .fade-leave-active {
  transition: opacity .5s
}
.fade-enter, .fade-leave-to /* .fade-leave-active in <2.1.8 */ {
  opacity: 0
}

效果是点击按钮hello会淡入淡出(这里不演示了,例子地址:https://vuefe.cn/v2/guide/transitions.html):

这里写图片描述

fade-enter和fade-leave-to类设置CSS为opacity:0,说明过渡刚进入和离开的时候透明度为0,即不显示。

四个属性说明:

  • fade-enter:进入过渡的开始状态,元素被插入时生效,只应用一帧后立即删除;
  • fade-enter-active:进入过渡的结束状态,元素被插入时就生效,在过渡过程完成之后移除;
  • fade-leave:离开过渡的开始状态,元素被删除时触发,只应用一帧后立即删除;
  • fade-leave-active:离开过渡的结束状态,元素被删除时生效,离开过渡完成之后被删除;

从上面四个类名可以看出,fade-enter-active和fade-leave-active在整个进入或离开过程中都有效,所以CSS的transition属性在这两个类下进行设置。

Logo

前往低代码交流专区

更多推荐