当前位置:首页 > VUE

vue使用animate实现动画

2026-02-21 04:43:50VUE

使用 Animate.css 实现 Vue 动画

在 Vue 项目中集成 Animate.css 可以快速实现丰富的 CSS 动画效果。Animate.css 提供了大量预设的动画类名,只需简单添加类名即可触发动画。

安装 Animate.css 依赖:

npm install animate.css

全局引入 Animate.css:

// main.js
import 'animate.css'

基础用法:直接添加类名

在 Vue 模板中直接使用 Animate.css 的类名组合:

<template>
  <div class="animate__animated animate__bounce">弹跳动画</div>
</template>

动态控制动画

通过 Vue 的响应式数据动态控制动画:

<template>
  <div 
    class="animate__animated"
    :class="{'animate__shakeX': shouldShake}"
    @click="triggerAnimation"
  >
    点击触发抖动动画
  </div>
</template>

<script>
export default {
  data() {
    return {
      shouldShake: false
    }
  },
  methods: {
    triggerAnimation() {
      this.shouldShake = true
      setTimeout(() => {
        this.shouldShake = false
      }, 1000)
    }
  }
}
</script>

结合 Transition 组件

与 Vue 的 Transition 组件配合使用实现入场/离场动画:

<template>
  <button @click="show = !show">切换</button>
  <Transition
    enter-active-class="animate__animated animate__fadeInDown"
    leave-active-class="animate__animated animate__fadeOutUp"
  >
    <div v-if="show">过渡动画内容</div>
  </Transition>
</template>

<script>
export default {
  data() {
    return {
      show: true
    }
  }
}
</script>

自定义动画时长

通过 CSS 变量覆盖默认动画时长:

/* 在全局样式或组件样式中 */
.animate__animated {
  --animate-duration: 0.5s;
}

动画事件监听

监听动画开始和结束事件:

vue使用animate实现动画

<template>
  <div
    class="animate__animated animate__bounce"
    @animationstart="handleStart"
    @animationend="handleEnd"
  >
    带事件监听的动画
  </div>
</template>

<script>
export default {
  methods: {
    handleStart() {
      console.log('动画开始')
    },
    handleEnd() {
      console.log('动画结束')
    }
  }
}
</script>

注意事项

  • Animate.css v4+ 使用 animate__ 前缀,旧版使用 animated 前缀
  • 确保元素初始状态设置为 display: blockdisplay: inline-block
  • 重复动画需要移除再添加类名,或使用 animation-iteration-count CSS 属性
  • 移动端性能优化建议减少复杂动画使用

标签: 动画vue
分享给朋友:

相关文章

vue实现分类

vue实现分类

Vue实现分类功能的方法 使用v-for和计算属性 通过计算属性对数据进行分类处理,结合v-for渲染分类后的列表。示例代码: <template> <div>…

vue实现radio

vue实现radio

Vue 实现 Radio 按钮 在 Vue 中实现 Radio 按钮可以通过 v-model 进行数据绑定,结合 input 元素的 type="radio" 属性。以下是一个基本示例: <t…

vue实现list

vue实现list

Vue 实现列表渲染 在 Vue 中,可以使用 v-for 指令来渲染列表。v-for 指令基于一个数组或对象来渲染一个列表,可以遍历数组或对象的属性。 基本列表渲染 <template>…

vue实现座位

vue实现座位

Vue实现座位布局 使用Vue实现座位布局可以通过组件化和响应式数据管理来简化开发流程。以下是一个完整的实现方案: 数据准备 定义座位数据结构,通常使用二维数组表示行列关系: data() {…

vue实现数据联动

vue实现数据联动

Vue 数据联动实现方法 数据联动在 Vue 中通常指多个组件或数据项之间的动态关联更新。以下是几种常见实现方式: 使用 v-model 和计算属性 <template> <d…

vue实现引导页面

vue实现引导页面

vue实现引导页面的方法 使用Vue实现引导页面可以通过多种方式完成,以下是几种常见的方法: 使用第三方库driver.js 安装driver.js库: npm install driver.j…