当前位置:首页 > VUE

vue 实现动画效果

2026-02-18 10:24:41VUE

使用 Vue Transition 组件实现动画

Vue 提供了内置的 <transition><transition-group> 组件,用于在元素插入、更新或移除时应用动画效果。通过 CSS 过渡或 JavaScript 钩子实现动画。

<transition name="fade">
  <p v-if="show">This will fade in and out</p>
</transition>
.fade-enter-active, .fade-leave-active {
  transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to {
  opacity: 0;
}

使用 CSS 动画库

可以集成第三方 CSS 动画库如 Animate.css,通过 <transition> 组件直接应用预定义的动画类。

<transition
  enter-active-class="animate__animated animate__bounceIn"
  leave-active-class="animate__animated animate__bounceOut"
>
  <p v-if="show">Bouncing text</p>
</transition>

使用 JavaScript 钩子实现复杂动画

通过 <transition> 的 JavaScript 钩子(如 beforeEnterenterafterEnter 等)可以实现更复杂的动画逻辑,例如结合 GSAP 库。

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

列表动画与 TransitionGroup

<transition-group> 用于对列表中的多个元素应用动画,每个元素需要唯一的 key

<transition-group name="list" tag="ul">
  <li v-for="item in items" :key="item.id">
    {{ item.text }}
  </li>
</transition-group>
.list-enter-active, .list-leave-active {
  transition: all 1s;
}
.list-enter, .list-leave-to {
  opacity: 0;
  transform: translateY(30px);
}

状态驱动的动画

通过 Vue 的响应式数据和计算属性,可以实现基于状态变化的动画效果。

computed: {
  rotateValue() {
    return this.isActive ? 180 : 0;
  }
}
<div :style="{ transform: `rotate(${rotateValue}deg)` }">
  Animated Element
</div>

使用 Vue 动画库

对于更高级的需求,可以使用专为 Vue 设计的动画库,如 vue-kinesis(物理动画效果)或 vue2-animate(预定义动画集合)。

vue 实现动画效果

<kinesis-container>
  <kinesis-element :strength="10">
    Moves with mouse
  </kinesis-element>
</kinesis-container>

标签: 效果动画
分享给朋友:

相关文章

jquery效果

jquery效果

jQuery 动画效果 jQuery 提供了多种内置动画效果,可用于实现平滑的页面交互。常用的方法包括 show()、hide()、toggle()、fadeIn()、fadeOut()、slideU…

vue实现翻页效果

vue实现翻页效果

使用Vue实现翻页效果 在Vue中实现翻页效果通常需要结合分页组件和数据处理逻辑。以下是几种常见方法: 基础分页组件实现 <template> <div> <…

elementui动画

elementui动画

ElementUI 动画使用指南 ElementUI 提供了内置的过渡动画效果,主要通过 Vue 的 <transition> 组件实现。以下为常见动画应用方法: 淡入淡出动画 通过 e…

vue实现动画特效

vue实现动画特效

Vue 实现动画特效的方法 Vue 提供了多种方式实现动画特效,主要通过内置组件和第三方库结合 CSS 或 JavaScript 完成。以下是常见的实现方法: 使用 Vue 内置过渡组件 Vue 的…

vue 实现文字动画

vue 实现文字动画

Vue 实现文字动画的方法 使用 CSS 动画结合 Vue 过渡 Vue 的 <transition> 组件可以与 CSS 动画结合,实现文字的动态效果。例如淡入淡出: <tran…

vue实现烟花效果

vue实现烟花效果

Vue 实现烟花效果的方法 在Vue中实现烟花效果可以通过结合Canvas绘图和动画技术来完成。以下是一种常见的实现方式: 创建Vue组件 新建一个名为Fireworks.vue的组件,核心逻辑如下…