您的位置:首页 > 房产 > 家装 > 房屋装修app_郑州品牌设计公司排行_员工培训课程_优化网站哪个好

房屋装修app_郑州品牌设计公司排行_员工培训课程_优化网站哪个好

2025/4/4 3:07:21 来源:https://blog.csdn.net/qq_43807473/article/details/146947168  浏览:    关键词:房屋装修app_郑州品牌设计公司排行_员工培训课程_优化网站哪个好
房屋装修app_郑州品牌设计公司排行_员工培训课程_优化网站哪个好

需求:如何在el-table使用合计功能时让横向滚动条显示在最下方

分析:其实el-table一共分为三部分:el-table__header-wrapperel-table__body-wrapperel-table__footer-wrapper 滚动条是一直显示在el-table__body-wrapper上的我们只需要把放在el-table__body-wrapper上的滚动条显示在el-table__footer-wrapper上再开启滚动监听就可以了

1、先隐藏原本的滚动条并将合计的滚动条打开:

:deep(.el-table__body-wrapper .el-scrollbar__bar) {

  display: none !important;

}

:deep(.el-table__footer-wrapper) {

  overflow: auto;

}

2、监听el-table__footer-wrapper的滚动

        在onMounted中绑定监听事件

<el-table v-loading="loading":data="tableData":row-key="rowKey"show-summaryborderref="multipleTableRef"></el-table>const multipleTableRef: any = ref<HTMLElement | null>(null);let tableFooterBody: HTMLElement | null = null;
const syncScroll = () => {if (!tableFooterBody) return;const scrollLeft = tableFooterBody.scrollLeft;const tableHeaderBody = multipleTableRef.value?.$el.querySelector('.el-table__header-wrapper') as HTMLElement;const tableBodyScrollbar = multipleTableRef.value?.$el.querySelector('.el-table__body-wrapper .el-scrollbar__wrap') as HTMLElement;if (tableHeaderBody) tableHeaderBody.scrollLeft = scrollLeft;if (tableBodyScrollbar) tableBodyScrollbar.scrollLeft = scrollLeft;
};onMounted(() => {tableFooterBody = multipleTableRef.value?.$el.querySelector('.el-table__footer-wrapper') as HTMLElement;if (tableFooterBody) {tableFooterBody.addEventListener('scroll', syncScroll);}
});// 卸载时移除事件防止内存泄漏
onUnmounted(() => {if (tableFooterBody) {tableFooterBody.removeEventListener('scroll', syncScroll);}
});

这里边注意因为el-table__footer-wrapper用的是el-scrollbar组件,所以 tableBody 实际上不是直接可滚动的元素,而是 el-scrollbar 里面的 .el-scrollbar__wrap 负责滚动。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com