利用jquery实现的表格冻结列(固定列)功能

               有时候希望一个表格当内容超出了之后,有滑动条,并且希望在滑动的时候某几列固定不动,下面介绍一种利用jquery动态修改列的属性的方法实现的冻结列(固定列)功能:

下面的jquery文件路径读者可以自己根据自己的情况更改一下O(∩_∩)O~

<html>
<head>   
     <title>表格的冻结列实现</title>
<script src="D:/jquery-3.1.0.min.js" type="text/javascript"></script>
</head>
<body>
<!--如果冻结列不好使,给tableDiv也设置一个position:relative;-->
 <div id="tableDiv" style="width:500px;overflow-x:auto;">
<table style="width:720px;">
<tr>
<td style="width:100px;">迭代名称</td>
<td style="width:80px;">得分</td>
<td style="width:100px;">代码覆盖率</td>
<td style="width:120px;">新需求个数</td>
<td style="width:160px;">通过的需求个数</td>
<td style="width:160px;">未通过的需求个数</td>
</tr>
<tr>
<td>迭代一</td>
<td>45</td>
<td>56%</td>
<td>450</td>
<td>12</td>
<td>90</td>
</tr>
<tr>
<td>迭代五</td>
<td>36</td>
<td>78%</td>
<td>216</td>
<td>97</td>
<td>12</td>
</tr>
<tr>
<td>迭代三</td>
<td>37</td>
<td>91%</td>
<td>404</td>
<td>17</td>
<td>34</td>
</tr>
</table>
 </div>
 <script>
$("#tableDiv").scroll(function(){//给table外面的div滚动事件绑定一个函数
var left=$("#tableDiv").scrollLeft();//获取滚动的距离
var trs=$("#tableDiv table tr");//获取表格的所有tr
   trs.each(function(i){//对每一个tr(每一行)进行处理
//获得每一行下面的所有的td,然后选中下标为0的,即第一列,设置position为相对定位
//相对于父div左边的距离为滑动的距离,然后设置个背景颜色,覆盖住后面几列数据滑动到第一列下面的情况
//如果有必要也可以设置一个z-index属性
$(this).children().eq(0).css({"position":"relative","top":"0px","left":left,"background-color":"white"});
});
});
 </script>
</body>
</html>   

 

你可能感兴趣的:(jquery,表格,web前端,固定列,冻结列)