这个问题需要分两个步骤解决:

  • 抖动的页面有多个多根节点
  • 增加离开过渡的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 在给路由跳转增加动画之后,跳转时页面会出现上下抖动的问题的更多相关文章

  1. Flutter路由的跳转、动画与传参(最简单)

    跳转 命名路由 在文件构建时先设置路由参数: new MaterialApp( // 代码 routes: { "secondPage":(BuildContext context ...

  2. Android自定义View 画弧形,文字,并增加动画效果

    一个简单的Android自定义View的demo,画弧形,文字,开启一个多线程更新ui界面,在子线程更新ui是不允许的,但是View提供了方法,让我们来了解下吧. 1.封装一个抽象的View类   B ...

  3. [UWP小白日记-9]页面跳转过度动画(二)

    又打算动手写了 [UWP小白日记-6]页面跳转过度动画 上次写的,这次随着学习的进度使用新的玩法. 最近在搞GIT的学习,结果把好好的项目玩坏,都不知道当时是怎么想的拿在写的APP来玩GIT,害我重写 ...

  4. ionic页面间跳转的动画实现

    1. 在<ion-view>标签中加入: nav-direction="back"或nav-direction="forward" 2.用$stat ...

  5. transition状态下Mecanim动画的跳转

    来自: http://blog.csdn.net/o_oxo_o/article/details/21325901 Unity中Mecanim里面动画状态的变化,是通过设置参数(Parameter)或 ...

  6. 域名解析中的cname解析和显性URL跳转和隐性URL跳转三者有什么区别

    通俗的来讲,cname解析还是属于dns解析,只是把某个域名解析到另外一个域名对应的某个IP的空间中,所以还需要在服务器端(比如nginx)做域名解析(比如把baidu.com做一个cname解析到i ...

  7. iOS - 模态Model视图跳转和Push视图跳转的混合需求实现原理

    在研发中总会遇到一些莫名的需求,本着存在即合理的态度跟大家分享一下"模态Model视图跳转和Push视图跳转的需求实现",本文仅仅传授研发技术不传授产品以及UE的思想,请大家合理对 ...

  8. WPF中的动画——(三)时间线(TimeLine)

    WPF中的动画——(三)时间线(TimeLine) 时间线(TimeLine)表示时间段. 它提供的属性可以让控制该时间段的长度.开始时间.重复次数.该时间段内时间进度的快慢等等.在WPF中内置了如下 ...

  9. iOS 一个app跳转另一个app并实现通信(如A跳到B并打开B中指定页面)

    功能实现:A跳到B并打开B中指定页面 步骤: 1.首先创建两个项目(项目A,项目B),在项目B中的info.plist文件中添加URL Types,如下图所示:其中URL idenifier是项目B的 ...

  10. jquery的跳转.禁止全url跳转.只需控制器+方法

    success:function(){ window.location.href="/enterprise/show"; } success:function(){ window. ...

随机推荐

  1. Readme3.0 Final

    Download Using 解压后放于不明显的地方 打开Devc++,点击 工具 > 编译选项 > 目录,在 C包含文件 与 C++包含文件 中复制完整路径并添加 选中刚添加的路径后,点 ...

  2. 了解final关键字在Java并发编程领域的作用吗?

    在Java并发编程领域,final关键字扮演着一个至关重要的角色.虽然很多同学熟悉final用于修饰变量.方法和类的基本用法,但其在并发环境中的应用和原理却常常被忽视.final关键字不仅仅是一个简单 ...

  3. iOS之动画(transform和UIView动画)学习

    1.transform 形变 这个是UIView的属性,继承UIView的控件都具有这个属性 UIImageView *imageview=[[UIImageView alloc]init]; ima ...

  4. vue2基于 vue-cropper插件对图片裁剪

    <template> <div id="app"> <div class="model" v-show="model&q ...

  5. 激活windows教程

    新建bat文件 [批处理文件:后缀是 bat ] 输入代码: slmgr/skms kms.03k.org slmgr/ato 然后以管理员运行 :

  6. KubeSphere DevOps 系统功能实战

    James,Java 工程师,喜欢学习和记录当下热门技术并验证其优势和缺点,以及当下火热的云原生解决方案的实施与推广. 前言 基于 Jenkins 的 KubeSphere DevOps 系统是专为 ...

  7. vue axios的使用及操作

    引入axios  并设置原型 Vue.prototype.$axios = axios;   在其他地方就可以this.$axios使用了   let param = _this.$qs.string ...

  8. Nuxt.js 应用中的 nitro:config 事件钩子详解

    title: Nuxt.js 应用中的 nitro:config 事件钩子详解 date: 2024/11/2 updated: 2024/11/2 author: cmdragon excerpt: ...

  9. 如何使用Ida Pro和Core Dump文件定位崩溃位置(Linux下无调试符号的进程专享)

    我们在嵌入式Linux开发过程中经常会遇到一个问题,就是程序崩溃后不知道具体位置.因为我们发布到生产环境的一般是没有调试符号的(使用strip或编译时加-s参数,CMake生成的编译指令中的-O3也会 ...

  10. AtCoder Beginner Contest 380 (A~E)题解

    A - 123233 遍历字符串统计出现次数即可. #include<bits/stdc++.h> using namespace std; #define int long long c ...