table横向滚动条_Iviewtable横向滚动条始终位于可视区域的实现

本文介绍了如何在 Vue 中使用 Iview Table 实现一个始终位于可视区域的横向滚动条,并详细阐述了实现步骤:覆盖原生滚动条,设置滚动条宽度与表格宽度一致,以及同步 view-table 的 scroll 事件和自定义滚动事件。通过代码示例展示了具体实现方法。

思路:

1、实现一个横向滚动条并盖住原生滚动条

2、自定滚动条的宽度必须与view-table的宽度一致

3、将view-table的scroll事件和自定义scroll事件进行同步

上效果图:

e3ac5fb138b7f21af42187c8718e6e19.png

上代码:

<template>    <div class="scroll-table">        <div class="st-con">纯占位字符div>    div>template>
.scroll-table {    margin-top: -20px;    width: 100%;    height: 20px;    overflow-x: scroll;    overflow-y: hidden;    // 采用粘性布局    position: sticky;    bottom: -20px;    .st-con {        // 将内容隐藏        opacity: 0;    }}
// 初始化mounted() {    // 给自定义模块设置宽度    document.getElementsByClassName('st-con')[0].style.width = document.getElementsByClassName('ivu-table-body')[0].scrollWidth + 'px';    // 同步原生滚动条位置    document.getElementsByClassName('ivu-table-body')[0].addEventListener('scroll', (event) => {        document.getElementsByClassName('scroll-table')[0].scrollLeft = event.target.scrollLeft;    });    // 同步自定义滚动条位置    document.getElementsByClassName('scroll-table')[0].addEventListener('scroll', (event) => {        document.getElementsByClassName('ivu-table-body')[0].scrollLeft = event.target.scrollLeft;    });}// 销毁监听beforeDestroy() {    // 同步原生滚动条位置    document.getElementsByClassName('ivu-table-body')[0].removeEventListener('scroll', (event) => {        document.getElementsByClassName('scroll-table')[0].scrollLeft = event.target.scrollLeft;    });    // 同步自定义滚动条位置    document.getElementsByClassName('scroll-table')[0].removeEventListener('scroll', (event) => {        document.getElementsByClassName('ivu-table-body')[0].scrollLeft = event.target.scrollLeft;    });}

4269e4694141030ee667ffc2587363e5.png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值