当前位置:首页 > 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> 组件直接应用预定义的动画类。

vue 实现动画效果

<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

vue 实现动画效果

<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(预定义动画集合)。

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

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

相关文章

Vue实现弹幕漂浮效果

Vue实现弹幕漂浮效果

Vue实现弹幕弹幕漂浮效果 核心思路 通过动态生成弹幕DOM元素,利用CSS动画或JavaScript控制其从右向左移动,并通过Vue的数据驱动特性管理弹幕生命周期。 基础实现步骤 创建弹幕组件 定…

vue实现对话框效果

vue实现对话框效果

Vue 对话框实现方法 使用组件化方式封装对话框 创建一个独立的对话框组件(如Dialog.vue),通过v-model控制显示隐藏: <template> <div cla…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

uniapp 卡片效果

uniapp 卡片效果

uniapp 实现卡片效果的方法 使用 view 和 CSS 样式 通过 view 组件结合 CSS 样式可以快速实现卡片效果。设置圆角、阴影和边距来增强视觉层次感。 <view class…

vue实现突出效果

vue实现突出效果

Vue 实现突出效果的方法 在 Vue 中实现突出效果通常涉及动态样式绑定、动画过渡或第三方库的使用。以下是几种常见实现方式: 动态类名绑定 通过 v-bind:class 或简写 :class…

vue实现ios动画

vue实现ios动画

Vue 实现 iOS 动画的方法 使用 CSS Transition 和 Vue 的过渡系统 Vue 提供了内置的过渡系统,可以通过 <transition> 组件实现动画效果。结合 CS…