当前位置:首页 > VUE

vue中实现动画

2026-02-18 05:18:40VUE

使用 Vue 内置的 <transition> 组件

Vue 提供了 <transition> 组件,用于在元素插入、更新或移除时添加动画效果。通过 name 属性定义动画类名前缀,配合 CSS 过渡或动画实现效果。

示例代码:

<transition name="fade">
  <div v-if="show">内容</div>
</transition>

CSS 部分:

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

结合 CSS 动画库(如 Animate.css)

通过 <transition>enter-active-classleave-active-class 属性直接引用第三方动画库的类名。

示例代码:

<transition
  enter-active-class="animate__animated animate__bounceIn"
  leave-active-class="animate__animated animate__bounceOut"
>
  <div v-if="show">内容</div>
</transition>

需先引入 Animate.css:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css" />

使用 JavaScript 钩子实现复杂动画

通过 <transition> 的 JavaScript 钩子(如 @before-enter@enter)结合 GSAP 或原生 JavaScript 实现精细化控制。

vue中实现动画

示例代码:

<transition
  @before-enter="beforeEnter"
  @enter="enter"
  @leave="leave"
>
  <div v-if="show">内容</div>
</transition>

JavaScript 部分:

methods: {
  beforeEnter(el) {
    el.style.opacity = 0;
  },
  enter(el, done) {
    gsap.to(el, {
      opacity: 1,
      duration: 0.5,
      onComplete: done
    });
  },
  leave(el, done) {
    gsap.to(el, {
      opacity: 0,
      duration: 0.5,
      onComplete: done
    });
  }
}

列表动画(<transition-group>

对动态列表项添加动画时使用 <transition-group>,需为每个子元素设置唯一的 key

示例代码:

vue中实现动画

<transition-group name="list" tag="ul">
  <li v-for="item in items" :key="item.id">{{ item.text }}</li>
</transition-group>

CSS 部分:

.list-enter-active, .list-leave-active {
  transition: all 0.5s;
}
.list-enter, .list-leave-to {
  opacity: 0;
  transform: translateY(30px);
}

状态驱动的动态过渡

通过 Vue 的响应式数据动态切换过渡效果。例如,根据用户操作切换不同的动画类名。

示例代码:

<transition :name="transitionName">
  <div v-if="show">内容</div>
</transition>

JavaScript 部分:

data() {
  return {
    transitionName: 'fade'
  };
},
methods: {
  switchAnimation(type) {
    this.transitionName = type; // 可切换为 'slide' 或其他动画名
  }
}

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

相关文章

vue实现适老化样式

vue实现适老化样式

Vue 实现适老化样式的关键方法 全局字体与字号调整 通过 CSS 变量或主题配置统一放大基础字号,建议正文不小于 18px,标题更大。在 App.vue 中设置全局样式: :root { --…

vue实现visual

vue实现visual

Vue 实现可视化(Visual)的常见方法 在 Vue 中实现可视化通常涉及数据可视化库的集成,以下是几种主流方案: 使用 ECharts ECharts 是一个强大的 JavaScript 图表…

vue实现ai

vue实现ai

Vue 实现 AI 功能 Vue.js 可以通过集成第三方 AI 服务或本地 AI 模型来实现 AI 功能。以下是几种常见的方法: 集成第三方 AI API 使用 Vue 调用如 OpenAI、Go…

vue实现全屏

vue实现全屏

Vue 实现全屏功能的方法 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 来实现。以下是几种常见的实现方式: 使用原生 Fullscreen API 通过调用 doc…

vue实现active

vue实现active

Vue 实现 active 状态的方法 在 Vue 中实现 active 状态可以通过以下几种方式实现,具体取决于使用场景和需求。 使用 v-bind:class 动态绑定类名 通过 v-bind:…

vue实现webapp

vue实现webapp

Vue 实现 WebApp 的基本步骤 环境准备 确保已安装 Node.js 和 npm/yarn。通过 Vue CLI 或 Vite 创建项目: npm install -g @vue/cli v…