广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue实现路由过渡动效的4种方法
  • 222
分享到

Vue实现路由过渡动效的4种方法

2024-04-02 19:04:59 222人浏览 八月长安
摘要

Vue 路由过渡是对 Vue 程序一种快速简便的增加个性化效果的的方法。 可以让你在程序的不同页面之间增加平滑的动画和过渡。如果使用得当,可以使你的程序显得更加专业,从而增强用户体验

Vue 路由过渡是对 Vue 程序一种快速简便的增加个性化效果的的方法。 可以让你在程序的不同页面之间增加平滑的动画和过渡。如果使用得当,可以使你的程序显得更加专业,从而增强用户体验。

本文中会先介绍使用 Vue 路由过渡的基础知识,然后在举几个例子,为你一些灵感。下面是其中的一个案例:

在 Vue 程序中添加路由

一般 Vue 路由设置如下所示:


<template>
  <router-view />
</template>

在旧版本的 Vue 路由中,我们可以简单地用 <transition> 组件包装 <router-view>。

但是,在较新版本的 Vue 路由中则必须用 v-slot 来解构 props 并将它们传递到我们的内部 slot 中。 这将包含一个动态组件,该组件被过渡组件包围。


<router-view v-slot="{ Component }">
  <transition>
    <component :is="Component" />
  </transition>
</router-view>

为路由添加过渡

默认情况下,用 <transition> 包裹 <component> 会在你应用的每个路由上添加相同的过渡。
可以通过两种方式为每个路由自定义转场效果。

将过渡移到每个组件中

首先,不用把我们的动态组件与过渡组件包装在一起,可以将 <transition> 移动到每个单独的组件中。 像这样:


<template>
  <transition>
    <div class="wrapper">
      <!-- -->
    </div>
  </transition>
</template>

依此类推,对要进行过渡的每条路由进行处理。 这样就可以通过修改过渡名称来自定义每条路由。

用 v-bind 进行动态过渡

另一个方法是将过渡的名称绑定到变量。 然后就可以根据自己的路有动态地修改这个变量。
这是 Vue 路由文档中的例子。在当前路由上用观察模式来动态设置 transitionName 变量。


<transition :name="transitionName">
  <component :is="Component" />
</transition>

watch: {
  '$route' (to, from) {
    const toDepth = to.path.split('/').length
    const fromDepth = from.path.split('/').length
    this.transitionName = toDepth < fromDepth ? 'slide-right' : 'slide-left'
  }
}

现在我们了解了 Vue 路由过渡的基础知识,下面让来看一些例子。

#1 – 渐变过渡

渐变页面过渡应该是最直接的一种动效。可以通过修改元素的透明度来实现。
首先,创建一个名为 fade 过渡。需要注意的是过渡模式设置为 out-in。

总共有 3 种过渡模式:

  • default:淡入和淡出过渡同时发生
  • in-out:新元素首先淡入。 然后当前元素淡出。
  • out-in:当前元素先淡出。 然后新元素开始淡入。

为了使新元素顺利淡入,我们需要在开始新过渡之前将当前元素删除。所以必须用 mode = "out-in"。


<router-view v-slot="{ Component }">
  <transition name="fade" mode="out-in">
    <component :is="Component" />
  </transition>
</router-view>

<transition> 为提供了几个 CSS 类,它们能够在动画周期中被动态添加或删除。
有 6。个不同的过渡类(3 个用于淡入,3 个用于淡出)。

  • v-enter-from / v-leave-from: 过渡的初始状态,过度开始后将其删除
  • v-enter-active / v-leave-active: 过渡的激活状态
  • v-enter-to / v-leave-to: 过渡的结束状态

我们的淡入淡出过渡有一个名为 fade-enter-from 的类。

我们希望淡入和淡出状态的透明度为 0。然后当过渡处于活动状态时,希望对透明度进行动画处理。

我们甚至不必将透明度设置为1,因为在动画制作过程中会删除  fade-enter-from 和 fade-leave-to 类。 这会使元素自己单独设置为默认透明度为 1 的动画。


.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.5s ease;
}

.fade-enter-from,
.fade-leave-to {
  opacity: 0;
}

配合一些虚拟组件,这就是最终过渡效果。

#2 – 幻灯片过渡

下一个是页面幻灯片过渡。

模板将如下。 由于希望淡入和淡出过渡同时发生,所以我们不想为过渡设置特殊的模式。


<router-view v-slot="{ Component }">
  <transition name="slide">
    <component :is="Component" />
  </transition>
</router-view>

为了使例子更容易理解,我把每个组件的宽度都设为100%,并占用至少 1 vh,还分别设置了背景色。


.wrapper {
  width: 100%;
  min-height: 100vh;
}

最后过渡样式将为要滑动组件的绝对位置设置动画。如果需要不同的滑动方向,只需更改要设置的CSS属性( top, bottom, left, right)。


.slide-enter-active,
.slide-leave-active {
  transition: all 0.75s ease-out;
}


.slide-enter-to {
  position: absolute;
  right: 0;
}


.slide-enter-from {
  position: absolute;
  right: -100%;
}


.slide-leave-to {
  position: absolute;
  left: -100%;
}


.slide-leave-from {
  position: absolute;
  left: 0;
}

这是最终效果:

#3 – 缩放过渡

缩放过渡与渐变过渡非常相似。同样需要把模式设置为 out-in,这样可以确保动画的正确顺序。


<router-view v-slot="{ Component }">
  <transition name="scale" mode="out-in">
    <component :is="Component" />
  </transition>
</router-view>

然后用样式改变元素的透明度和 transfORM: scale。


.scale-enter-active,
.scale-leave-active {
  transition: all 0.5s ease;
}


.scale-enter-from,
.scale-leave-to {
  opacity: 0;
  transform: scale(0.9);
}

为了使这个过渡看上去更干净,可以把整个网页的背景色设置为黑色。

这是最终效果:

#4 – 组合过渡

过渡的效果有很多很多,常用的做法是把一些基础的过渡结合在一起,例如把幻灯片和缩放合并为一个过渡。


<router-view v-slot="{ Component }">
  <transition name="scale-slide">
    <component :is="Component" />
  </transition>
</router-view>

.scale-slide-enter-active,
.scale-slide-leave-active {
  position: absolute;
  transition: all 0.85s ease;
}

.scale-slide-enter-from {
  left: -100%;
}

.scale-slide-enter-to {
  left: 0%;
}

.scale-slide-leave-from {
  transform: scale(1);
}

.scale-slide-leave-to {
  transform: scale(0.8);
}

这是最终效果

看上去还不错吧。

#5 – 写在最后

近期在提升 Vue 的过程中,发现一个高逼格的 vue3+TS 教程

到此这篇关于Vue实现路由过渡动效的4种方法的文章就介绍到这了,更多相关Vue 路由过渡动效 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue实现路由过渡动效的4种方法

本文链接: https://www.lsjlt.com/news/126207.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue实现路由过渡动效的4种方法
    Vue 路由过渡是对 Vue 程序一种快速简便的增加个性化效果的的方法。 可以让你在程序的不同页面之间增加平滑的动画和过渡。如果使用得当,可以使你的程序显得更加专业,从而增强用户体验...
    99+
    2022-11-12
  • 如何实现四个Veu路由过渡动效
    这篇文章主要讲解了“如何实现四个Veu路由过渡动效”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现四个Veu路由过渡动效”吧!Vue Router 过...
    99+
    2022-10-19
  • Vue.2.0.5过渡效果的实现方法
    小编给大家分享一下Vue.2.0.5过渡效果的实现方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!概述Vue 在插入、更新或者...
    99+
    2022-10-19
  • vue动态路由有哪两种实现方法
    本教程操作环境:windows7系统、vue3版,DELL G3电脑。动态路由不同于常见的静态路由,可以根据不同的「因素」而改变站点路由列表。动态路由设置一般有两种:(1)、简单的角色路由设置:比如只涉及到管理员和普通用户的权限。通常直接在...
    99+
    2023-05-14
    动态路由 Vue
  • vue 路由切换过渡动效滑入滑出效果的实例代码
    效果展示 css 滑入和滑出的动画 .twofade-enter {transform: translateX(100%);} .twofade-enter-active {tra...
    99+
    2022-11-13
  • vue动态路由的实现方法有哪些
    本篇内容介绍了“vue动态路由的实现方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!vue动态路由的两种实现方法:1、简单的角色路由...
    99+
    2023-07-04
  • Vue鼠标滚轮滚动切换路由效果的实现方法
    一个根路由组件(app下的根路由组件, 需要滚动切换的作为其子组件) 在根路由组件添加鼠标滚动时间监听, 在mounted中调用监听 当跳转到其他路由(跳出这个根路由时), 根路由组...
    99+
    2022-11-12
  • ssh自动登录的4种实现方法
    1. 自动ssh/scp方法 A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;A和B的系统都是Linux 在A上运行命令:#...
    99+
    2022-06-04
    自动登录 方法 ssh
  • Vue实现路由嵌套的方法实例
    1、嵌套路由又称子路由,在实际应用中,通常由多层嵌套的组件组合而成。(其实就是套娃操作罢了,跟后端的视图跳转路径蛮像的): 2、 创建用户信息组件,在 views/user 目录下...
    99+
    2022-11-12
  • vue子路由跳转实现tab选项卡效果的方法
    这篇文章主要介绍“vue子路由跳转实现tab选项卡效果的方法”,在日常操作中,相信很多人在vue子路由跳转实现tab选项卡效果的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue子路由跳转实现tab选项...
    99+
    2023-06-29
  • Vue实现路由嵌套的方法是什么
    这期内容当中小编将会给大家带来有关Vue实现路由嵌套的方法是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。嵌套路由又称子路由,在实际应用中,通常由多层嵌套的组件组合而成。(其实就是套娃操作罢了,跟后端...
    99+
    2023-06-25
  • Vue实现当前页面刷新的4种方法举例
    目录前言方法一:location.reload方法二:$router.go(0)方法三:provide、inject和$nextTick方法四:创建空白页总结前言 这两周在写一个后台...
    99+
    2023-05-18
    vue页面刷新方法 vue当前页面刷新 vue重新加载当前页面
  • vue实现tab路由切换组件的方法实例
    前言 本文介绍的是使用vue自带的vue-router.js路由实现分页切换功能,下面话不多说了,来一起看看详细的实现代码吧 实现图片如下 下列为实现代码 css: *{ ...
    99+
    2022-11-12
  • react自动化构建路由的实现方法
    这篇文章主要介绍了react自动化构建路由的实现方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。序在使用react-router-dom在编写项目的时候有种感觉就是,使用起...
    99+
    2023-06-14
  • vue-router实现路由懒加载的方法是什么
    这篇文章主要讲解了“vue-router实现路由懒加载的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue-router实现路由懒加载的方法是什么”吧!在Web应用程序中,系统的...
    99+
    2023-07-04
  • vue-router实现路由懒加载的方法有哪些
    这篇文章给大家介绍vue-router实现路由懒加载的方法有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。什么是路由懒加载?也叫延迟加载,即在需要的时候进行加载,随用随载。官方解释: 1:当打包构建应用时...
    99+
    2023-06-06
  • Tk.mybatis零sql语句实现动态sql查询的方法(4种)
    目录实现方式:方式一:使用Example实现方式二:使用example.createCriteria实现方式三:使用Example.builder实现方式四:使用weekendSql...
    99+
    2022-11-12
  • Vue3纯前端实现Vue路由权限的方法详解
    目录前言RBAC模型代码实现登录菜单信息动态路由筛选总结前言 在开发管理后台时,都会存在多个角色登录,登录成功后,不同的角色会展示不同的菜单路由。这就是我们通常所说的动态路由权限,实...
    99+
    2022-11-13
  • vue实现动态路由添加功能的简单方法(无废话版本)
    目录前言一 . 封装一个处理生产路由的函数二. vuex中进行调用三,最终完成动态添加路由总结 前言 最近练习vue的项目,有关于后台管理系统的动态添加路由部分,根据思路实...
    99+
    2023-02-16
    vue 动态添加路由 vue动态添加路由配置 vue动态配置路由
  • Android实现View滑动效果的6种方法
    本文实例为大家分享了Android实现View滑动效果的具体代码,供大家参考,具体内容如下 一、View的滑动简介 View的滑动是Android实现自定义控件的基础,同时在开发中我...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作