阅读 691

关与 ant design 合计行不能固定在底部解决方案

现在 ant design 在表格里已经增加了 summary API 可以实现底部合计功能;但由于 antd 提供的并不能实现固定在底部;antd 提供的 footer 倒是可以固定在底部,但它不会随滚动条滚动,所以鄙人在这里进行了一些改良;

刚开始接到这个需求的时候也是在网上查了一大堆,发现都不太符合目前 ui 需求 (其实是自己太菜看不懂。。。)

方法一: 思路:鄙人使用的是 footer API 通过设置 overflow:auto 使底部合计栏出现滚动条,然后通过控制一条滚动使另一条滚动条随之滚动即可

const warp = domWarp.current.getElementsByClassName("ant-table-body")[0];
const wrapBottom = domWarp.current.getElementsByClassName('ant-table-footer')[0]
warp.addEventListener("scroll",() => {
    wrapBottom.scrollLeft = warp.scrollLeft
},true)
复制代码

这样就可以了,然后就是设置底部合计栏每个div的宽度与上面表格内容对齐;

最后通过样式隐藏其中一条滚动条就好了 (此方案产生于2021.03.02)

方法二:思路:获取到合计的数据,将数据 push 到表格里面去, 然后将表格的最后一个元素设置 position:sticky 即可固定在底部( 注:一定要设置在 td 身上)

tr:last-child td {
   background: #fff;
   position: sticky;
   bottom: 0px;
   z-index: 1;
   box-shadow: 5px 0 10px #e4e4e4;
}
复制代码

效果如下:

(此方案产生于2021.03.09) 简单有效,不费性能

方案二存在的一个问题不知道你们遇到没有,就是当数据只有几条的时候,最后 push 进去的数据并没有实现固定在底部, 原因说明:由于数据较少并没有出现滚动条所以 position:sticky 不生效。这里推荐读者同学们去百度搜一下 关于 粘性定位的

解决方案:

无、欢迎讨论
复制代码

一个歪门邪道的前端提供的旁门左道方法

文章分类
前端
文章标签