当前位置:首页 > VUE

vue 实现切屏动画

2026-02-22 20:26:54VUE

实现基础切屏动画

使用 Vue 的 <transition> 组件包裹需要切换的元素,结合 CSS 过渡类名实现动画效果。通过 name 属性定义动画前缀,例如 name="fade" 会生成 .fade-enter-active 等类名。

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

使用动态组件切换

结合 <component :is="currentComponent"> 实现组件级切屏动画,适用于多页面切换场景。每个组件需要设置唯一的 key 以保证过渡效果触发。

<transition name="slide" mode="out-in">
  <component :is="currentView" :key="currentView"></component>
</transition>
.slide-enter-active {
  animation: slideIn 0.3s;
}
.slide-leave-active {
  animation: slideOut 0.3s;
}
@keyframes slideIn {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}
@keyframes slideOut {
  from { transform: translateX(0); }
  to { transform: translateX(-100%); }
}

路由切换动画

在 Vue Router 中使用 <router-view> 实现页面路由切换动画,通过路由元信息控制不同过渡效果。

<transition :name="transitionName">
  <router-view></router-view>
</transition>
watch: {
  '$route'(to, from) {
    this.transitionName = to.meta.transition || 'fade'
  }
}

使用第三方动画库

集成 animate.css 等动画库快速实现专业效果,通过自定义过渡类名直接应用预设动画。

<transition
  enter-active-class="animate__animated animate__fadeInLeft"
  leave-active-class="animate__animated animate__fadeOutRight"
>
  <div v-if="show">动画内容</div>
</transition>

手势驱动动画

通过 Hammer.js 等库实现手势滑动切屏,结合 Vue 的响应式数据控制动画状态。

import Hammer from 'hammerjs'

mounted() {
  const hammer = new Hammer(this.$el)
  hammer.on('swipeleft', () => {
    this.currentIndex = Math.min(this.currentIndex + 1, this.maxIndex)
  })
  hammer.on('swiperight', () => {
    this.currentIndex = Math.max(this.currentIndex - 1, 0)
  })
}

性能优化建议

对移动端设备启用硬件加速,使用 will-changetransform 属性提升动画流畅度。避免同时触发过多属性变化,优先使用 opacitytransform 进行动画处理。

.optimized-animation {
  will-change: transform, opacity;
  transform: translateZ(0);
}

vue 实现切屏动画

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

相关文章

vue实现一个系统

vue实现一个系统

Vue 系统实现步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目: npm init vue@latest my-system 选择需要的配置(Router、Pinia 等)。…

vue实现功能

vue实现功能

Vue 功能实现方法 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现常见功能的几种方法: 数据绑定与响应式更新 在 Vue 中,数据绑定通过 v-mode…

vue实现缩放

vue实现缩放

Vue 实现缩放的方法 在 Vue 中实现缩放功能可以通过多种方式完成,以下是一些常见的方法: 使用 CSS transform 属性 通过 CSS 的 transform: scale() 属性可…

vue实现通知

vue实现通知

Vue 实现通知功能的方法 使用 Vue 实现通知功能可以通过多种方式实现,以下是一些常见的方法: 使用 Vue 的全局事件总线 在 Vue 中可以通过事件总线实现通知功能。创建一个全局事件总线,…

vue页面实现

vue页面实现

Vue 页面实现方法 创建 Vue 组件 使用 Vue 单文件组件(SFC)方式创建页面,文件扩展名为 .vue。一个基本的 Vue 组件包含三个部分:模板(template)、脚本(script)和…

vue实现erp

vue实现erp

Vue实现ERP系统的关键步骤 技术选型与架构设计 采用Vue 3 + TypeScript构建前端,搭配Pinia状态管理,Element Plus或Ant Design Vue作为UI框架。后端可…