定制底部footer bug:切换tab时position fixed会抖动

news/2024/10/19 19:38:51/

文章目录

  • bug描述
  • position:fixed是啥?有啥用
  • 为什么切换tab的时候会抖动
  • 如何解决
    • 自定义一个InBody组件,将里面所有的元素放到body里面
    • 需要放到的底部的内容都放到这个组件里面

bug描述

在element admin里面定制了footer组件,每个页面也可还有点区别,将分页和导出和一些其他操作放到footer,在切换页面的时候会有抖动
在这里插入图片描述

position:fixed是啥?有啥用

position:fixed是固定定位的意思,就是把一个DIV(footer)固定在页面的最底部,无论页面上面的内容如何滚动,页面下部的(footer)不动。

为什么切换tab的时候会抖动

当元素祖先的 transform、perspective、filter 或 backdrop-filter 属性非 none 时,容器由视口改为该祖先。

fixed的元素的父级元素有任意一个的 transform、perspective、filter 或 backdrop-filter不为空,则会基于这个容器而定位,而不是浏览器窗口了。

element-admin在切换tab的时候,会有一个动画效果,是基于transform来实现的。

如何解决

自定义一个InBody组件,将里面所有的元素放到body里面

<template><div><slot></slot></div>
</template>
<script>
export default {name: 'InBody',mounted() {const node = this.$mount().$eldocument.body.appendChild(node)//将里面所有的元素放到body里面},destroyed() {const node = this.$mount().$elnode.remove()}
}
</script>

在Vue组件的mounted生命周期钩子函数中执行的操作。下面是对代码的解释:

  1. mounted(): 这是Vue组件的生命周期钩子函数之一。在Vue实例挂载到DOM元素上之后执行,表示组件已经被渲染并插入到页面中。

  2. const node = this.$mount().$el: $mount()是Vue实例的一个方法,用于手动将Vue实例挂载到DOM元素上。这里通过调用$mount()方法并获取其返回值的$el属性,将组件挂载到一个虚拟的DOM节点上。这样做的目的是将组件渲染为实际的HTML元素。

  3. document.body.appendChild(node): document.body表示页面的<body>元素。appendChild()是DOM API中的一个方法,用于将指定的节点添加到父节点的子节点列表的末尾。在这里,将之前挂载的组件节点(node)添加到<body>元素中,实现将组件的内容插入到页面中的效果。

综合来说,这段代码的作用是将Vue组件的内容渲染并插入到页面的<body>元素中。在组件的mounted钩子函数中,首先将组件挂载到一个虚拟的DOM节点上,然后通过appendChild()方法将该节点添加到<body>元素中,使得组件的内容在页面中显示出来。

需要放到的底部的内容都放到这个组件里面

<InBody><pagination class="footer-global" v-show="total > 0" :total="total" :page.sync="queryParams.pageNum":limit.sync="queryParams.pageSize" @pagination="getList" /></InBody>

http://www.ppmy.cn/news/96684.html

相关文章

剑指 Offer 10- II 青蛙跳台阶问题

题目&#xff1a; 一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e97&#xff08;1000000007&#xff09;&#xff0c;如计算初始结果为&#xff1a;1000000008&#xff0c;请返回 1。 示例 1&am…

URL中特殊字符处理

在实际开发中&#xff0c;难免遇到url的出现一些特殊字符&#xff0c;此时需要编码处理&#xff0c;平时在浏览直接输入 ascii 表以外的字符时&#xff0c;浏览器会自动帮我们编码&#xff0c;但是在开发中&#xff0c;需要我们手动编码。 带有功能的特殊符号 加号 &#xff…

有感(1)

今晚喝了酒&#xff0c;看着平凡的世界感觉很有深度&#xff0c;感慨于1976年的长辈们为了改变命运而学习&#xff0c;感觉超越了目前我的精神状态太多&#xff0c;可惜去年才意识到这个问题&#xff0c;我是悲哀的一个&#xff0c;也是懦弱的一个&#xff0c;无法在众多问题中…

dom中的事件处理

事件参考 | MDN (mozilla.org) 什么是事件 事件监听方式 直接在html中编写JavaScript代码(了解) <button οnclick"console.log(按钮1发生了点击~);">按钮1</button> DOM属性&#xff0c;通过元素的on.....来监听事件 // 2.onclick属性// function h…

android 12.0Launcher3长按拖拽时最后一屏未满时不让拖拽到后一屏(二)

1.概述 在12.0定制化开发中,如果专门适配老年机的时候,这时客户提出要求,如果最后一屏未满时,不让拖拽到后面一屏的空屏中,等当前屏填满了以后,才能拖到下一屏的功能,所以要从workspace的拖拽类开始着手分析 2.长按拖拽时最后一屏未满时不让拖拽到后一屏(二)核心类 pa…

第2章 Class

Point结构体 //C语言写法 typedef struct point{float x;float y; }Point;Point a; a.x 1; a.y 2; //const表示p指向的对象里的值不能由p指针修改 void print(const Point* p){printf("%d %d\n", p -> x, p -> y); } print(&a);//想实现点的移动&#x…

使用Python绘制M2货币供应率曲线

M2广义货币供应量&#xff1a;流通于银行体系之外的现金加上企业存款、居民储蓄存款以及其他存款&#xff0c;它包括了一切可能成为现实购买力的货币形式&#xff0c;通常反映的是社会总需求变化和未来通胀的压力状态。近年来&#xff0c;很多国家都把M2作为货币供应量的调控目…

Go语言的命令

常用命令 假如你已安装了golang环境&#xff0c;你可以在命令行执行go命令查看相关的Go语言命令&#xff1a; Go语言是一门编译型语言&#xff0c;通过命令行工具来编译、运行和管理代码。以下是Go语言的一些常用命令及其用法&#xff1a; go run&#xff1a;用于编译并直接…