解决 Vue element ui 的table水平滚动条固定底部(两个姿势)

本文介绍了两种方法解决Vue中Element UI Table组件在小屏幕下出现水平滚动条时,如何将其固定在屏幕底部。思路一涉及手写滚动条并用window.onresize监听窗口大小变化,通过计算比例实现联动。思路二则利用CSS控制,将table包裹在div中,设置最小宽度和隐藏溢出,达到最佳效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

掘金地址

Github 写的两个方法demo,点点star

前提条件,需求:

使用vue element UI 的table
在这里插入图片描述
由于横向数据比较长,小屏幕电脑会出现水平滚动条,假如每页20条数据,那么我想对第一条数据进行操作,我得先滚动到table最下面,再拉动水平滚动条到最右边,再回滚到最上面,对末尾的操作进行点击。

这样操作太繁琐,所以提出需求:屏幕过小出现水平滚动条时候,将table的水平滚动条固定再屏幕底部。
element ui 的table并没有办法实现,我采用的是window.onresize

思路一、手写滚动条关联table

1.手写一个固定底部的滚动条,与table的滚动条绑定实现联动,并隐藏table的滚动条.。
2.用window.onresize对浏览器窗口进行监听,用来判断滚动条显示隐藏。
3.计算滑动位移距离和对应比例。

熟悉思路看代码

一、手写个滚动条并定位到底部绑定上事件,设置好初始化参数,用处已经注释好了
	data(){
   
   
	return{
   
   
 		//滚动条参数
      newx: "", // 第一次坐标
      oldx: "", // 移动的坐标
      outBoxWidth: "", // 滚动条长度
      moveWidth: "", // 可移动的长度
      old_new: {
   
   
        // 滚动条偏移量
        left: 0
      },
      windowWidth: document.body.clientWidth - 280, //table宽度
      f: 0,
      leftstr:'',
      //滚动条参数
      }
     }
<!-- 滚动条 -->
//img是两端的小箭头
<div class="out_box" ref="out_box">
     <img style="margin-left:-20px;position:fixed;bottom:0px;" src="http://img.s.youfenba.com/material_thumb/74NGnHkeQs.png">  
     <
### 回答1: 可以通过设置表格的样式来隐藏滚动条,具体方法如下: 1. 在表格的外层容器上设置样式 overflow: hidden; 2. 在表格的 tbody 上设置样式 overflow-y: scroll; 这样就可以隐藏表格的滚动条了。 ### 回答2: Element UI 是一个基于 Vue.js 的 UI 库,它提供了丰富的组件,包括表格组件。在使用 Element UI 表格组件时,有时候需要隐藏表格的滚动条,这可以通过以下步骤完成: 1. 找到 Element UI 表格组件的容器元素,一般是一个 class 为 el-table 的 div 元素。 2. 在该容器元素的样式中设置 overflow 属性为 hidden,这样便可隐藏表格的滚动条。 例如,如果要隐藏 id 为 my-table 的表格组件的滚动条,可以在样式中添加如下代码: ```css #my-table .el-table { overflow: hidden; } ``` 这样便可成功地隐藏表格组件的滚动条。 另外,如果想要隐藏表头和表格内容的滚动条,可以将 overflow 属性应用到 el-table__header-wrapper 和 el-table__body-wrapper 元素,例如: ```css #my-table .el-table__header-wrapper, #my-table .el-table__body-wrapper { overflow: hidden; } ``` 这样便可同时隐藏表头和表格内容的滚动条。 总之,Element UI 表格组件的滚动条隐藏,可以通过设置容器元素的 overflow 属性为 hidden 实现。 ### 回答3: 在 Element UI 中,我们可以使用 el-table 组件来显示数据表格,而当数据量较大时,就会出现滚动条。如果我们希望隐藏滚动条,可以采取以下方法: 方法1:CSS 样式方式 1.在 el-table 标签上加上 style="overflow:hidden;",这样能够隐去直接展示的滚动条,但是在鼠标滚动滚轮的时候,仍会出现默认的浏览器滚动条,不能达到完全隐藏的效果。 2.给 el-table 标签外层添加一个包裹层,如 <div class="table-wrapper">,并设置其样式为 overflow:hidden;。同时,将 el-table 的高度设置为最大值:max-height: none; height: auto;。这样展示时就能完全隐藏滚动条。 3.但是,由于这种方法需要额外添加包裹层,所以可能会减少页面的美观度,不够简洁。 方法2:JS 方式 1.在页面加载完成后,获取 el-table 的 class 属性,如:let tableClass = document.querySelector('.el-table--scrollable-y'); 2.获取到 class 属性后,为 el-table 隐藏滚动条tableClass.style.overflowY = 'hidden'; 3.但是,使用 JS 方法隐藏滚动条需要在页面加载后再操作,如果操作晚了容易引起页面的闪烁。同时,这种方式虽然能够隐藏滚动条,但是并没有解决滚动的问题,使用鼠标滚轮时仍会触发滚动事件。 总结来说,以上两种方法中,CSS 样式方式更为简洁,但是需要额外添加包裹层,而 JS 方式虽然容易实现,但是需要注意操作的时机。在实际开发中,可以根据具体需求和场景选择合适的方法来隐藏滚动条
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值