如何固定table的第一行,不随纵向滚动条滚动,但能横向滚动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何固定table的第一行,不随纵向滚动条滚动,但能横向滚动相关的知识,希望对你有一定的参考价值。

参考技术A *
margin:0;
padding:0;

td
width:200px;
line-height:30px;

table
width:2000px;

#th
background-color:#888888;
position:absolute;
height:30px;
top:0;
left:0;

#tb
margin-top:30px;

</style>
<script type="text/javascript">
var pre_scrollTop=0;//滚动条事件之前文档滚动高度
var pre_scrollLeft=0;//滚动条事件之前文档滚动宽度
var obj_th;

window.onload =function ()
pre_scrollTop=document.documentElement.scrollTop;
pre_scrollLeft=document.documentElement.scrollLeft;
obj_th=document.getElementById("th");
;
window.onscroll = function()
if(pre_scrollTop != document.documentElement.scrollTop)
//滚动了数值滚动条
pre_scrollTop=document.documentElement.scrollTop;
if(obj_th)
obj_th.style.top=document.documentElement.scrollTop;


else if(pre_scrollLeft != document.documentElement.scrollLeft)
//滚动了水平滚动条
pre_scrollLeft=document.documentElement.scrollLeft;

;
</script>
</head>
<body>
<table id="th" cellpadding="0" cellspacing="0">
<tr>
<td>001</td>
<td>002</td>
<td>003</td>
<td>004</td>
<td>005</td>
<td>006</td>
<td>007</td>
<td>008</td>
<td>009</td>
<td>0010</td>
</tr>
</table>
<table id="tb" cellpadding="0" cellspacing="0">
<tr>
<td>内容</td>
<td>内容</td>
<td>内容</td>
<td>内容</td>
<td>内容</td>
<td>内容</td>
<td>内容</td>
<td>内容</td>
<td>内容</td>
<td>内容</td>

ElementUI Table 首行固定

本文地址: https://www.cnblogs.com/veinyin/p/12101047.html

 

需求描述:首行固定,吸附在表头下,数据多时其他行可以纵向滚动

 

方案一  两个表格拼凑

第一个表格展示头部和固定行 第二个表格展示其它数据 示意图如下

技术图片

 

适用场景:仅横向 纵向均无滚动条时可用

若有横向滚动条,两个表格的滚动条是分开的,会出现滚动A  B不动,或滚动B A不动的情况,Windows下会展示两个横向滚动条,不美观 

若有纵向滚动条,在Windows下滚动条是默认有宽度的,滚动条的宽占用了表格B的部分宽度,导致表头和表主体列错位,示意图如下

 

 

 技术图片

方案二 修改表格样式 将合并行上移

ElementUI 的 Table 有合并行这个功能,合并行位于 footer 中,固定在表格底部,即使 body 有横向或纵向滚动,样式和功能都已经优化好了。示意图如下

 

技术图片

 

 


要做的就是把样式调整成我们想要的,使用定位把 footer 放到 header 下,body 向下移一行的距离即可。

 

补充:图中为官方定义合并行内容的方法,如果单元格内展示的内容或样式比较复杂,可以 return 元素,类似 JSX 写法

技术图片

 

 

 

总结:

方案一 两个表格都无数据时的效果、两个表格的拼接处边框样式要处理。

方案二 表格如果为流体高度,要判断表格高度是内容撑开还是已经达到最大高,同时要监听窗口缩放事件灵活定位

 

 

 

 END~~~≥ω≤

以上是关于如何固定table的第一行,不随纵向滚动条滚动,但能横向滚动的主要内容,如果未能解决你的问题,请参考以下文章

css Div在页面中纵向固定,不随滚动条滚动,横向随滚动条滚动

如何让背景图片固定不随滚动条滚动

html上面的一个table 如何实现,滚动条左右滚动的时候,第一列固定;上下滚动的时候第一行固定;

怎么让div内的某个元素固定不随div的滚动条的滚动而滚动?

怎么让div内的某个元素固定不随div的滚动条的滚动而滚动?

有两个div,一个父级,一个子级,父级有滚动条,样式如何写才能让子级的div固定在顶部,不随滚动条