vue3 在给路由跳转增加动画之后,跳转时页面会出现上下抖动的问题
这个问题需要分两个步骤解决:
- 抖动的页面有多个多根节点
- 增加离开过渡的css样式
v-leave-to: {display: none}
解决步骤1 (抖动的页面有多个多根节点)
我在为路由跳转增加了动画之后,有的页面可以正常加载动画,有的页面就有抖动问题,后来发现控制台有如下的报告信息:

问题解释如下:
警告信息表明你在使用Vue的组件时遇到了问题。组件要求它包裹的内容只能有一个根元素,这是因为Vue的过渡效果需要针对单个元素进行动画处理。
如果你的组件内部渲染了多个元素或者根元素不是单个DOM元素(比如一个或者一个组件返回了多个根节点),Vue就无法为这些元素应用动画效果,因此会抛出这个警告。
所以大家可以看下哪个页面组件有抖动现象,查下代码是不是有多个根节点:
旧代码:
<template>
<p>第一行</p>
<p>第二行</p>
</template>
新代码:
<template>
<div>
<p>第一行</p>
<p>第二行</p>
</div>
</template>
保证组件内部只有一个根节点
解决步骤2 (动画增加离开过渡的css样式 v-leave-to)
当按照上面更改之后,还有抖动的问题,我们需要给动画的 css 做些更改,比如下面是最基础的代码:
<template>
<router-view v-slot="{Component}">
<transition name="fade" mode="out-in">
<component :is="Component"></component>
</transition>
</router-view>
</template>
<style scoped lang="less">
.fade-enter-active,
.fade-leave-active {
transition: all .5s;
}
.fade-leave-from {
opacity: 0;
transform: translateX(30px);
}
.fade-enter-from {
opacity: 0;
transform: translateX(-30px);
}
</style>
我们在上面的代码里面,style 中再加一行代码如下,让上一个页面不占位
.fade-leave-to {
display: none;
}
vue3 在给路由跳转增加动画之后,跳转时页面会出现上下抖动的问题的更多相关文章
- Flutter路由的跳转、动画与传参(最简单)
跳转 命名路由 在文件构建时先设置路由参数: new MaterialApp( // 代码 routes: { "secondPage":(BuildContext context ...
- Android自定义View 画弧形,文字,并增加动画效果
一个简单的Android自定义View的demo,画弧形,文字,开启一个多线程更新ui界面,在子线程更新ui是不允许的,但是View提供了方法,让我们来了解下吧. 1.封装一个抽象的View类 B ...
- [UWP小白日记-9]页面跳转过度动画(二)
又打算动手写了 [UWP小白日记-6]页面跳转过度动画 上次写的,这次随着学习的进度使用新的玩法. 最近在搞GIT的学习,结果把好好的项目玩坏,都不知道当时是怎么想的拿在写的APP来玩GIT,害我重写 ...
- ionic页面间跳转的动画实现
1. 在<ion-view>标签中加入: nav-direction="back"或nav-direction="forward" 2.用$stat ...
- transition状态下Mecanim动画的跳转
来自: http://blog.csdn.net/o_oxo_o/article/details/21325901 Unity中Mecanim里面动画状态的变化,是通过设置参数(Parameter)或 ...
- 域名解析中的cname解析和显性URL跳转和隐性URL跳转三者有什么区别
通俗的来讲,cname解析还是属于dns解析,只是把某个域名解析到另外一个域名对应的某个IP的空间中,所以还需要在服务器端(比如nginx)做域名解析(比如把baidu.com做一个cname解析到i ...
- iOS - 模态Model视图跳转和Push视图跳转的混合需求实现原理
在研发中总会遇到一些莫名的需求,本着存在即合理的态度跟大家分享一下"模态Model视图跳转和Push视图跳转的需求实现",本文仅仅传授研发技术不传授产品以及UE的思想,请大家合理对 ...
- WPF中的动画——(三)时间线(TimeLine)
WPF中的动画——(三)时间线(TimeLine) 时间线(TimeLine)表示时间段. 它提供的属性可以让控制该时间段的长度.开始时间.重复次数.该时间段内时间进度的快慢等等.在WPF中内置了如下 ...
- iOS 一个app跳转另一个app并实现通信(如A跳到B并打开B中指定页面)
功能实现:A跳到B并打开B中指定页面 步骤: 1.首先创建两个项目(项目A,项目B),在项目B中的info.plist文件中添加URL Types,如下图所示:其中URL idenifier是项目B的 ...
- jquery的跳转.禁止全url跳转.只需控制器+方法
success:function(){ window.location.href="/enterprise/show"; } success:function(){ window. ...
随机推荐
- Readme3.0 Final
Download Using 解压后放于不明显的地方 打开Devc++,点击 工具 > 编译选项 > 目录,在 C包含文件 与 C++包含文件 中复制完整路径并添加 选中刚添加的路径后,点 ...
- 了解final关键字在Java并发编程领域的作用吗?
在Java并发编程领域,final关键字扮演着一个至关重要的角色.虽然很多同学熟悉final用于修饰变量.方法和类的基本用法,但其在并发环境中的应用和原理却常常被忽视.final关键字不仅仅是一个简单 ...
- iOS之动画(transform和UIView动画)学习
1.transform 形变 这个是UIView的属性,继承UIView的控件都具有这个属性 UIImageView *imageview=[[UIImageView alloc]init]; ima ...
- vue2基于 vue-cropper插件对图片裁剪
<template> <div id="app"> <div class="model" v-show="model&q ...
- 激活windows教程
新建bat文件 [批处理文件:后缀是 bat ] 输入代码: slmgr/skms kms.03k.org slmgr/ato 然后以管理员运行 :
- KubeSphere DevOps 系统功能实战
James,Java 工程师,喜欢学习和记录当下热门技术并验证其优势和缺点,以及当下火热的云原生解决方案的实施与推广. 前言 基于 Jenkins 的 KubeSphere DevOps 系统是专为 ...
- vue axios的使用及操作
引入axios 并设置原型 Vue.prototype.$axios = axios; 在其他地方就可以this.$axios使用了 let param = _this.$qs.string ...
- Nuxt.js 应用中的 nitro:config 事件钩子详解
title: Nuxt.js 应用中的 nitro:config 事件钩子详解 date: 2024/11/2 updated: 2024/11/2 author: cmdragon excerpt: ...
- 如何使用Ida Pro和Core Dump文件定位崩溃位置(Linux下无调试符号的进程专享)
我们在嵌入式Linux开发过程中经常会遇到一个问题,就是程序崩溃后不知道具体位置.因为我们发布到生产环境的一般是没有调试符号的(使用strip或编译时加-s参数,CMake生成的编译指令中的-O3也会 ...
- AtCoder Beginner Contest 380 (A~E)题解
A - 123233 遍历字符串统计出现次数即可. #include<bits/stdc++.h> using namespace std; #define int long long c ...