📜  淡入淡出过渡 vue (1)

📅  最后修改于: 2023-12-03 15:40:45.785000             🧑  作者: Mango

Vue中的淡入淡出过渡

Vue.js提供了一种方便的方式来对HTML元素进行过渡动画,包括淡入淡出过渡效果。这是通过使用Vue的内置的过渡组件实现的。

过渡组件

Vue的过渡组件是Vue为我们提供的一种抽象组件,它可以在元素的插入、更新和移除时添加过渡效果。过渡组件包含以下属性:

  • name:用于指定过渡的名称,必须唯一。
  • appear:指定是否在初始渲染时执行过渡效果。
  • css:指定是否使用CSS过渡类.
  • type:指定要执行的过渡类型,有transitionanimation两种。
  • enter-class:指定进入过渡的CSS类名。
  • enter-active-class:指定进入过渡激活时的CSS类名。
  • enter-to-class:指定进入过渡结束后的CSS类名。
  • leave-class:指定离开过渡的CSS类名。
  • leave-active-class:指定离开过渡激活时的CSS类名。
  • leave-to-class:指定离开过渡结束后的CSS类名。

过渡组件可以在需要添加过渡效果的元素上使用。以下是一个基本的过渡组件的示例:

<transition name="fade">
  <p v-if="show">Hello, Vue.js!</p>
</transition>

这个组件中设置了一个名为fade的过渡名称。当<p>元素的v-if指令切换为true时,<p>元素就会以淡入淡出的方式过渡。

CSS过渡类

CSS过渡类是Vue在元素进行过渡时自动添加和删除的类。这些类的命名规则为:

  • 进入过渡开始前添加v-enter
  • 进入过渡结束时添加v-enter-active
  • 离开过渡开始前添加v-leave
  • 离开过渡结束时添加v-leave-active

可以在这些类上添加特定的CSS样式以实现自定义的过渡效果。例如,使用以下CSS样式可以制作一个简单的淡入淡出效果:

.fade-enter {
  opacity: 0;
}

.fade-enter-active {
  transition: opacity .5s ease;
}

.fade-enter-to {
  opacity: 1;
}

.fade-leave {
  opacity: 1;
}

.fade-leave-active {
  transition: opacity .5s ease;
}

.fade-leave-to {
  opacity: 0;
}
示例

以下是一个使用淡入淡出过渡效果的示例:

<template>
  <div>
    <button @click="toggle">Toggle</button>
    <transition name="fade">
      <p v-if="show">Hello, Vue.js!</p>
    </transition>
  </div>
</template>

<script>
export default {
  data() {
    return {
      show: false
    }
  },
  methods: {
    toggle() {
      this.show = !this.show
    }
  }
}
</script>

<style>
.fade-enter {
  opacity: 0;
}

.fade-enter-active {
  transition: opacity .5s ease;
}

.fade-enter-to {
  opacity: 1;
}

.fade-leave {
  opacity: 1;
}

.fade-leave-active {
  transition: opacity .5s ease;
}

.fade-leave-to {
  opacity: 0;
}
</style>

点击“Toggle”按钮,将会以淡入淡出的形式出现或消失“Hello,Vue.js!”的文本。这个过渡动画将会持续 0.5 秒,速度为”ease”。