解决nz-table底部固定合计栏 开启虚拟滚动后无法横向滚动

文章描述了一个在前端处理大数据量表格时遇到的性能挑战,表格具有可配置列和无限列的需求,且无法分页。作者通过固定合计栏对齐、监听滚动事件以及应用虚拟滚动来优化性能。在启用虚拟滚动后,调整CSS样式以实现整个表格的横向滚动。此外,还处理了列宽度自适应变化的情况,确保合计栏的准确性。

先上效果图

 

 如图 表格是可配置列的,且列是可自定义的,也就是说可以有无限列,同时由于需求限制无法做成分页,需要一次性加载全量数据,因此延展出了性能问题。

1.底部合计栏固定对齐,拖动表格的同时合计跟着一起滚动对齐

具体思路就是给表格一个固定视窗的高度,动态获取表格配置(获取每列宽度,给合计栏的每个span一个相同的宽度),css开启滚动并隐藏合计栏的滚动条,监听表格的滚动事件,当表格滚动时给合计栏一个相同的滚动

ps:注意这时候并未开启虚拟滚动,开启虚拟滚动后滚动的视窗和现在是不一样的

 <nz-table
  #productTable
  class="statistics-table"
  [nzData]="dataList"
  [nzFrontPagination]="false"
  [nzScroll]="{ x: '100vw',y: '500px' }"
  [nzShowPagination]="false"
>
.
.
.
</nz-table>

 <div  class="fixed-footer" id="fixedFooter">
       <span   *ngFor="let item of summarySettings" class="footer-item" [ngStyle]="{width: item.width}">
              {
  
  {item.summary}}
        </span>
 </div>

这是表格大概模版

定义出来后我们再去浏览器打开f12,拖动表格滚动条,找到当前在滚动的元素

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值