当前位置:首页 > VUE

vue实现切换特效

2026-02-20 08:40:38VUE

使用Vue过渡系统实现切换特效

Vue提供了内置的过渡系统,通过<transition><transition-group>组件可以轻松实现元素进入/离开的动画效果。这些组件会自动在恰当的时候添加/移除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动画库实现特效

可以使用Animate.css等CSS动画库快速实现丰富的切换效果。安装后直接在transition组件中指定动画类名。

vue实现切换特效

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

使用JavaScript钩子实现复杂动画

对于需要更复杂控制的动画,可以使用transition组件的JavaScript钩子函数,结合GSAP等动画库。

vue实现切换特效

<transition
  @before-enter="beforeEnter"
  @enter="enter"
  @leave="leave"
>
  <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
    })
  },
  leave(el, done) {
    gsap.to(el, {
      opacity: 0,
      duration: 0.5,
      onComplete: done
    })
  }
}

列表过渡效果

对于v-for渲染的列表元素,使用<transition-group>组件实现排序动画和进入/离开动画。

<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 Router中,可以为路由视图添加过渡效果,实现页面切换时的动画。

<router-view v-slot="{ Component }">
  <transition name="route" mode="out-in">
    <component :is="Component" />
  </transition>
</router-view>
.route-enter-active, .route-leave-active {
  transition: all 0.3s ease;
}
.route-enter-from {
  opacity: 0;
  transform: translateX(30px);
}
.route-leave-to {
  opacity: 0;
  transform: translateX(-30px);
}

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

相关文章

vue弹幕实现不重叠

vue弹幕实现不重叠

实现 Vue 弹幕不重叠的方法 CSS 定位与动画控制 通过绝对定位和动态计算弹幕轨道高度,确保弹幕在不同轨道上运行。每条弹幕占据固定高度的轨道,避免重叠。 // 弹幕轨道高度计算 const t…

vue  select实现

vue select实现

Vue Select 实现方法 在 Vue 中实现下拉选择功能可以使用原生 <select> 标签或第三方库如 vue-select。以下是两种方法的详细说明: 原生 HTML Sele…

vue实现递归

vue实现递归

Vue 实现递归组件的方法 在 Vue 中实现递归组件通常用于处理树形结构数据(如菜单、评论列表、文件目录等)。以下是具体实现方法: 定义递归组件 通过 name 选项让组件可以递归调用自身:…

vue实现alert

vue实现alert

实现自定义 Alert 组件 在 Vue 中可以通过组件化方式实现自定义 Alert 弹窗。以下是基于 Vue 3 的实现示例: 组件代码 (Alert.vue) <template>…

vue实现框架

vue实现框架

Vue 框架实现的核心方法 基础项目搭建 使用 Vue CLI 或 Vite 快速初始化项目。Vue CLI 适合传统项目,Vite 更适合现代轻量级应用。安装后通过命令行工具选择所需配置(如 Rou…

vue 实现列表

vue 实现列表

Vue 实现列表的方法 在 Vue 中实现列表通常使用 v-for 指令,结合数组或对象数据渲染动态列表。以下是几种常见的实现方式: 基础列表渲染 使用 v-for 指令遍历数组,渲染列表项。ite…