Bootstrap的table组件,固定表头的表格竖线对不齐的解决
问题描述:当表格定义高度时,其会自动变为表头固定的模式,但是在首次加载时,会出现表头thead的竖线,与表体的竖线无法对齐的情况。
通过渲染好的页面,在浏览器查看html结构时发现,固定表头的方式,是新增一个表头,这个新增的表头浮于源表格上部,刚好遮住原表头,这也滚轮滚动的时候,看上去是表头固定,这种方式必然需要新增的表头与原表头的宽度一一对应,js中一定有相应的计算逻辑,我去找了,没看懂。
最初解决是手动按照上面👆逻辑,去手写一个新的表格,也成功了,能保证始终对齐,只不过不如组件方便,而且不能每次都新的表格去改。
后来在按F12的时候,界面宽度发生变化时,表格的线突然对齐了,一开始猜测是由于body或者html变化宽度,其js重新计算宽度对齐了,于是尝试js调整body宽度和html宽度,并且瞬间再还原,结果没有变化。
之后又尝试触发resize事件,因为有可能组件的js依靠这个事件的触发,将线对齐。
// 原生js: 通过
window.onresize = function(){
console.log("resize");
}
window.onresize(); // 成功触发
// JQuery
window.onresize = function (params) {
console.log("resize");
}
$(window).trigger("resize"); // 成功触发
通过手动触发window.resize()
,表格的线在表格首次刷新的时候,触发resize方法
,然后线对齐了,我做的表格都带有分页功能,所以将这个触发,放在了每一次表格渲染之后,保证线始终对齐。
不知道其他人是否也有通过调整窗口,线会自动对齐的情况,如果也是这样,可以通过手动触发resize
事件,对齐表格。如果是其他原因引起的,只能再找其他大神的方法的,源码有点看不下去,本来目的也只是解决自己这一类的问题,如果出现新bug的话,那就再去研究了。
**一个还是没有解决的问题**
- 偶尔会出现切换页数后,滑动下方横向的滚轮时,表头的不随之运动,而是卡在某一个位置,不知有没有解决方法!