当前位置:首页 > VUE

vue实现过渡效果

2026-02-17 10:09:34VUE

使用 <transition> 组件

Vue 提供了内置的 <transition> 组件,用于在元素插入、更新或移除时应用过渡效果。只需将需要过渡的元素包裹在 <transition> 标签内,并为其指定 name 属性。过渡效果通过 CSS 类名自动应用。

<transition name="fade">
  <div v-if="show">内容</div>
</transition>
.fade-enter-active, .fade-leave-active {
  transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to {
  opacity: 0;
}

结合 CSS 动画

除了过渡效果,还可以使用 CSS 动画实现更复杂的动效。通过 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>

使用 JavaScript 钩子

通过 JavaScript 钩子(如 beforeEnterenterafterEnter)可以更精细地控制过渡逻辑。通常与第三方动画库(如 GSAP)结合使用。

vue实现过渡效果

<transition
  @before-enter="beforeEnter"
  @enter="enter"
  @after-enter="afterEnter"
>
  <div v-if="show">内容</div>
</transition>
methods: {
  beforeEnter(el) {
    el.style.opacity = 0;
  },
  enter(el, done) {
    gsap.to(el, {
      opacity: 1,
      duration: 1,
      onComplete: done
    });
  },
  afterEnter(el) {
    console.log('动画完成');
  }
}

列表过渡(<transition-group>

需要对多个元素(如列表)应用过渡时,使用 <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 0.5s;
}
.list-enter, .list-leave-to {
  opacity: 0;
  transform: translateY(30px);
}

动态过渡与模式

通过动态绑定 name 属性切换不同的过渡效果,或使用 mode="out-in" 控制元素交替行为(当前元素先离开,新元素再进入)。

vue实现过渡效果

<transition :name="transitionName" mode="out-in">
  <component :is="currentComponent"></component>
</transition>

第三方动画库集成

例如结合 Animate.css,直接通过类名调用预设动画:

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

需确保已安装并引入 Animate.css:

npm install animate.css
import 'animate.css';

标签: 效果vue
分享给朋友:

相关文章

vue实现表格

vue实现表格

Vue 实现表格的方法 在 Vue 中实现表格可以通过多种方式完成,以下是几种常见的方法: 使用原生 HTML 表格 Vue 可以直接渲染原生 HTML 表格,通过 v-for 动态生成表格行和列。…

vue实现用户信息删除

vue实现用户信息删除

Vue 实现用户信息删除功能 在 Vue 中实现用户信息删除功能通常涉及前端界面交互和后端 API 调用。以下是实现步骤: 前端界面设计 创建删除按钮或操作项,通常使用 @click 事件触发删除操…

vue 实现弹幕

vue 实现弹幕

vue 实现弹幕的方法 使用 CSS 动画和动态渲染 在 Vue 中实现弹幕效果,可以通过动态渲染弹幕元素并结合 CSS 动画实现。以下是具体步骤: 数据准备 创建一个数组存储弹幕数据,每条弹幕包…

vue实现input

vue实现input

Vue 实现 Input 输入框的方法 基本双向绑定 使用 v-model 指令实现双向数据绑定,适用于大多数表单场景: <template> <input v-model="…

vue搜索实现

vue搜索实现

Vue 搜索功能实现方法 基于计算属性的搜索 在 Vue 中可以通过计算属性实现简单的搜索功能。这种方式适合小型数据集,利用 JavaScript 的 filter 方法进行筛选。 data() {…

vue拖动实现

vue拖动实现

实现 Vue 拖动功能的方法 使用 HTML5 拖放 API 在 Vue 中可以利用 HTML5 的原生拖放 API 实现拖动功能。通过 draggable 属性标记可拖动元素,结合 @dragsta…