Vue 路由切换时如何加过渡动画? 东方子涵 提问于 2026-03-25 11:42:20 阅读 5 前端 我在用 Vue Router 做页面切换,想加个淡入淡出的过渡效果,但试了几次都没生效。是不是我写法有问题? 我已经在 router-view 外面包了 transition,也写了对应的 CSS 类名,但页面切换时完全没动画。 .fade-enter-active, .fade-leave-active { transition: opacity 0.3s ease; } .fade-enter-from, .fade-leave-to { opacity: 0; } 前端路由 我来解答 赞 1 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 茂庭 Dev Lv1 遇到这个问题,首先检查一下你的 router-view 是否被 transition 正确包裹。然后确保你的 CSS 类名没有拼写错误。你已经写的 CSS 没问题,关键是要保证 Vue 的过渡系统能正常工作。 确保你的代码结构类似这样: 注意这里用了 mode="out-in",这样可以避免两个路由同时显示的尴尬情况。 另外,检查一下你的 Vue 和 Vue Router 版本是否是最新的,有时候版本问题也会导致奇怪的行为。 如果还是不行,尝试在浏览器里打开开发者工具,看看是否有任何 JavaScript 错误或者 CSS 被覆盖的情况。有时候浏览器缓存也会捣乱,清除缓存后再试一次。性能上这没啥开销,但是能排除一些基本问题。 回复 点赞 2026-03-25 12:00 加载更多 相关推荐 2 回答 45 浏览 Vue路由切换时如何实现平滑过渡动画? 我在用 Vue 3 + Vue Router 做页面切换,想加个淡入淡出的过渡效果,但试了 transition 包 router-view 后动画根本不触发,页面直接闪过去。是不是我写法有问题? 这... IT人钰曦 优化 2026-02-24 19:59:18 2 回答 106 浏览 Vue路由切换时的过渡动画导致页面卡顿怎么办? 最近在给Vue项目加路由过渡效果,用了transition标签做滑动切换,但发现每次路由变化时页面会卡顿半秒。尝试过把mode设成out-in,动画虽然顺眼了,但滚动位置会突然跳到顶部,而且新页面内容... 小馨予 优化 2026-01-29 11:44:51 1 回答 33 浏览 Vue路由切换时过渡动画为什么会有重叠闪烁? 在用Vue Router做页面切换时,给router-view加了标签和CSS动画,但新旧页面会同时显示半秒,出现重叠闪烁。试过设置appear和调整css时长都没用,这是怎么回事? 代码是这样的: ... シ东宁 前端 2026-02-13 14:01:30 2 回答 206 浏览 页面切换动画组件如何实现平滑过渡?元素位置跳动问题怎么解决? 我在用Vue的Transition组件做路由切换动画时,新页面元素总会出现0.5秒的跳动。已经给容器加了固定宽高,但当使用transform: translateX()动画时,内容区域还是会有位置偏移... 司空栾同 组件 2026-02-04 01:49:28 1 回答 21 浏览 页面切换动画怎么实现平滑过渡? 我在用 Vue 做一个单页应用,想在路由切换时加个淡入淡出的动画,但试了 transition 包裹 router-view 后没效果。是不是哪里写错了? 我的代码是这样写的: <transit... 子晨 Dev 组件 2026-03-13 16:31:17 1 回答 24 浏览 Chrome 动画面板为啥不显示我的 Vue 过渡动画? 我用 Vue 写了个简单的列表过渡,但在 Chrome DevTools 的 Animations 面板里完全看不到任何动画记录,是我写错了吗? 我已经打开了 DevTools 的「Animation... ლ梦雅 工具 2026-03-08 23:05:21 1 回答 57 浏览 Vue 中如何实现路由切换时缓存组件状态? 我在用 Vue3 + Vue Router 做一个后台管理系统,列表页点进去详情页再返回,列表的滚动位置和搜索条件都重置了,体验很差。听说可以用 keep-alive 缓存路由组件,但试了好像没生效?... 宇文海霞 前端 2026-03-06 03:16:18 2 回答 36 浏览 低代码平台中如何动态注册 Vue Element Admin 的路由? 我在用低代码平台集成 Vue Element Admin 时,想根据后端返回的菜单动态生成路由,但页面一直空白,控制台也没报错。我试过在 router/index.js 里直接 push 路由,但好像... 志鲜 Dev 框架 2026-03-03 21:05:20 1 回答 54 浏览 Vue Router 中如何正确使用路由元信息 meta? 我在 Vue 项目里用 Vue Router 配置路由时,想通过 meta 字段传递一些权限信息,但发现组件里拿不到。比如我这样写: { path: '/admin', component: Admi... 文仙 Dev 前端 2026-02-27 09:46:17 2 回答 61 浏览 Vue Transition组件子元素动画不触发怎么办? 在用Vue的Transition组件包裹列表时,切换列表项时外层动画正常,但子元素的hover效果动画突然失效了,这是为什么? 我尝试给Transition加了mode="out-in",然后在CSS... UI欢欢 组件 2026-02-18 21:18:25
router-view是否被transition正确包裹。然后确保你的 CSS 类名没有拼写错误。你已经写的 CSS 没问题,关键是要保证 Vue 的过渡系统能正常工作。确保你的代码结构类似这样:
注意这里用了
mode="out-in",这样可以避免两个路由同时显示的尴尬情况。另外,检查一下你的 Vue 和 Vue Router 版本是否是最新的,有时候版本问题也会导致奇怪的行为。
如果还是不行,尝试在浏览器里打开开发者工具,看看是否有任何 JavaScript 错误或者 CSS 被覆盖的情况。有时候浏览器缓存也会捣乱,清除缓存后再试一次。性能上这没啥开销,但是能排除一些基本问题。