本文介绍了如何在 Vue 开发中使用 Animate.css 和 Transition 标签,让你的应用程序拥有更多的动画效果和更好的用户体验。通过引入 Animate.css 库和在 Vue 组件中使用 <transition> 标签,你可以轻松地实现各种预定义的 CSS 动画效果,并控制组件的进入和离开动画。本文还提供了使用 Animate.css 和 Transition 标签的详细步骤和代码示例。

在 Vue 开发中,动画效果对于提升用户体验和视觉效果非常重要。Animate.css 是一个流行的 CSS 动画库,它提供了许多预定义的 CSS 动画效果,可以很容易地在 Vue 应用程序中使用。

animate.css 官网案例

Animate.css 是一个非常流行的 CSS 动画库,它包含了各种各样的动画效果,可以方便地在 Web 应用程序中使用。Animate.css 官网提供了许多演示页面,这些页面展示了 Animate.css 库的不同动画效果。

官网案例: https://animate.style/

github 项目地址: https://github.com/animate-css/animate.css image-20230320115953201

Transition 标签属性简介用法

在 Vue 中,我们可以使用 <transition> 标签来控制组件的进入和离开动画。 <transition> 标签有以下属性:

  • name:指定过渡类的名称,通常使用 "transition" 前缀。
  • enter-active-class:指定组件进入时的 CSS 类。
  • leave-active-class:指定组件离开时的 CSS 类。
  • appear:指定是否在组件出现时触发动画效果,默认为 false
  • appear-active-class:指定组件出现时的 CSS 类。

下面是一个使用 <transition> 标签的例子:

<transition name="transition-fade">
  <h1 v-show="showTitle">这是标题</h1>
</transition>

在这个例子中, <h1> 元素在显示和隐藏时会触发淡入淡出效果。 name 属性设置为 "transition-fade",对应的 CSS 类可以定义在样式表中。 v-show 指令控制 <h1> 元素的显示和隐藏,当它变为 true 时, <h1> 元素会淡入显示;当它变为 false 时, <h1> 元素会淡出隐藏。

Vue 中使用 Animate.css 案例

我们可以将 Animate.css 与 Vue 的 <transition> 标签一起使用,以在 Vue 应用程序中应用动画效果。下面是一个例子,展示了如何在 Vue 应用程序中使用 Animate.css 库。

安装 Animate.css

要使用 Animate.css,我们需要先在 Vue 项目中安装它。可以使用 npm 命令进行安装:

npm install animate.css --save

导入 Animate.css

在需要使用 Animate.css 的 Vue 组件中,可以通过 import 语句导入 Animate.css 库:

//main.js
import "animate.css";

在 Vue 组件中使用 Animate.css 和 Transition 标签

下面是一个使用 Animate.css 和 Vue 的 <transition> 标签的例子。

<template>
  <div>
    <transition
      enter-active-class="animate__animated animate__fadeIn"
      leave-active-class="animate__animated animate__fadeOut">
      <el-button v-if="!isStart" @click="start" type="primary" circle>按钮</el-button>
    </transition>
  </div>
</template>

<script>
// import 'animate.css'; 可以单独引入

export default {
  data() {
    return {
      isStart: false,
    };
  },
  methods: {
    start() {
      this.isStart = true;
    },
  },
};
</script>

<style scoped></style>

这段代码是一个 Vue 组件,其中包含一个 <el-button> 元素,它有一个 v-if 指令,只有当 isStartfalse 时才会被渲染出来。在 <transition> 标签中, enter-active-classleave-active-class 属性使用了 Animate.css 动画库中的类名,表示在元素进入或离开时要应用的动画效果。在点击按钮时, start() 方法被调用,将 isStart 的值设置为 true,这将导致 <el-button> 元素被从 DOM 中删除,同时在退出过渡期间, animate__fadeOut 类名将被添加到该元素上,产生一个淡出的动画效果。