table thead 固定 tbody滚动

一种简单的方法实现

支持多行th

<!DOCTYPE html>
<html>

  <head>
		<meta charset="UTF-8">
    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js" ></script>
  </head>
<style type="text/css">
	*{margin: 0;padding: 0;}
	table{
		 100%;
		 border-collapse:collapse;
	}
	table tr th,table tr td{
		height: 30px;
		border: 1px solid #ddd;
		text-align: center;
		background: #fff;
	}
	.one{
		 100%;
		overflow: auto;
		position: relative;
		height: 200px;
		z-index: 999;
	}
	.one-one{
		position: absolute;
	}
	
</style>
  <body>
	<div class="one">
		<table class="one-one">
			<thead>
				<tr>
					<th>1</th>
					<th>2<br /></th>
					<th>3</th>
					<th>4</th>
					<th>5</th>
					<th>6</th>
					<th>7</th>
				</tr>
				<tr>
					<th>1</th>
					<th>2<br /></th>
					<th>3</th>
					<th>4</th>
					<th>5</th>
					<th>6</th>
					<th>7</th>
				</tr>
			</thead>
		</table>
		<table class="one-two">
			<thead>
				<tr>
					<th>1</th>
					<th>2<br /></th>
					<th>3</th>
					<th>4</th>
					<th>5</th>
					<th>6</th>
					<th>7</th>
				</tr>
				<tr>
					<th>1</th>
					<th>2<br /></th>
					<th>3</th>
					<th>4</th>
					<th>5</th>
					<th>6</th>
					<th>7</th>
				</tr>
			</thead>
			<tbody>
				<tr>
					<td>111111111</td>
					<td>111111111111111111111111111</td>
					<td>111111111111111111111111111111111111111111111</td>
					<td>111111111</td>
					<td>1</td>
					<td>111111111111111111111111111111111111</td>
					<td>11</td>
				</tr>
				<tr>
					<td>111111111</td>
					<td>111111111111111111111111111</td>
					<td>111111111111111111111111111111111111111111111</td>
					<td>111111111</td>
					<td>1</td>
					<td>111111111111111111111111111111111111</td>
					<td>11</td>
				</tr>
				<tr>
					<td>111111111</td>
					<td>111111111111111111111111111</td>
					<td>111111111111111111111111111111111111111111111</td>
					<td>111111111</td>
					<td>1</td>
					<td>111111111111111111111111111111111111</td>
					<td>11</td>
				</tr>
				<tr>
					<td>111111111</td>
					<td>111111111111111111111111111</td>
					<td>111111111111111111111111111111111111111111111</td>
					<td>111111111</td>
					<td>1</td>
					<td>111111111111111111111111111111111111</td>
					<td>11</td>
				</tr>
				<tr>
					<td>111111111</td>
					<td>111111111111111111111111111</td>
					<td>111111111111111111111111111111111111111111111</td>
					<td>111111111</td>
					<td>1</td>
					<td>111111111111111111111111111111111111</td>
					<td>11</td>
				</tr>
				<tr>
					<td>111111111</td>
					<td>111111111111111111111111111</td>
					<td>111111111111111111111111111111111111111111111</td>
					<td>111111111</td>
					<td>1</td>
					<td>111111111111111111111111111111111111</td>
					<td>11</td>
				</tr>
				<tr>
					<td>111111111</td>
					<td>111111111111111111111111111</td>
					<td>111111111111111111111111111111111111111111111</td>
					<td>111111111</td>
					<td>1</td>
					<td>111111111111111111111111111111111111</td>
					<td>11</td>
				</tr>
				<tr>
					<td>111111111</td>
					<td>111111111111111111111111111</td>
					<td>111111111111111111111111111111111111111111111</td>
					<td>111111111</td>
					<td>1</td>
					<td>111111111111111111111111111111111111</td>
					<td>11</td>
				</tr>
				<tr>
					<td>111111111</td>
					<td>111111111111111111111111111</td>
					<td>111111111111111111111111111111111111111111111</td>
					<td>111111111</td>
					<td>1</td>
					<td>111111111111111111111111111111111111</td>
					<td>11</td>
				</tr>
				<tr>
					<td>111111111</td>
					<td>111111111111111111111111111</td>
					<td>111111111111111111111111111111111111111111111</td>
					<td>111111111</td>
					<td>1</td>
					<td>111111111111111111111111111111111111</td>
					<td>11</td>
				</tr>
			</tbody>
		</table>
	</div>
  
  <script>
  	window.onload=function(){
  		
  		//让由内容的table 和没有内容的table一样宽,th一样高
	    $(".one-one").width($(".one-two").width())
	    $(".one-one thead").height($(".one-two  thead").height())
  		
  		
  		//实时获取table 的宽度和th的高度
  		$(window).resize(function(){ 
		    $(".one-one").width($(".one-two").width())
		    $(".one-one thead").height($(".one-two thead").height())
		    
		})
  		
  		//循环让one-one 中的每个th 与one-two中的th高度相同
  		$(".one-two thead tr th").each(function(i){
  			$(".one-one thead tr th").eq(i).width($(this).width()+1);
  		});
  		
  		//滚动调滚动,修改one-one的top值
  		$(".one").scroll(function(){
  			var top = $(this).scrollTop(); 
  			console.log(top)
  			$(".one-one").css('top',top);
  		})
  		
  	}
  </script>
  
  </body>

</html>

  

原文地址:https://www.cnblogs.com/yjgbk/p/8890994.html