改版自:Jquery插件 -- 表格固定表头 - 纯粹的郭子 - 博客园

先上效果图:

<!DOCTYPE html>
<html>
<head>
<title> New Document </title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.ScrollTable.js"></script>
<script type="text/javascript">
  $(function(){
    $(".tbl").ScrollTable({ MaxHeight:300 });
  });
</script>
<style>
   .tbl{ border-collapse:collapse; font-size:14px; }
   .tbl th{ height:25px; line-height:25px; }
   .tbl td{ text-align:center; height:25px; line-height:25px; }
   .ScrollTableContainer{ border:1px solid #000;border-top:none;border-left:none; }
   .ScrollDiv{ margin-top:-1px; overflow-y:scroll; }
</style>
</head>
<body>

<table class="tbl" width="800" border="1" align="center" cellpadding="0" cellspacing="0">
	<thead>
		<tr>
			<th>标题1</th>
			<th>标题2</th>
			<th>标题3</th>
			<th>标题4</th>
			<th>标题5</th>
			<th>标题6</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
		</tr>
		<tr>
			<td>data1</td>
			<td>data2</td>
			<td>data3</td>
			<td>data4</td>
			<td>data5</td>
			<td>data6</td>
	</tr>
	</tbody>
</table>


</body>
</html>

  

(function ($) {
    $.fn.extend({
        ScrollTable: function (options) {
            var defaults = {
                MaxHeight: 200
            };

            options = $.extend(defaults, options);
            return this.each(function () {
                var $this = $(this);
                // 克隆表头部分和身体部分
                var $cloneTableHeader = $this.find("thead").clone();
                var $cloneTableBody = $this.find("tbody").clone();
				
				$cloneTableHeader.find("tr").append("<td style=\"width:18px\"></td>");
				var $newHeader = $("<table class=\"tbl\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\"></table>");
				var $newBody = $("<table class=\"tbl\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\"></table>");

				$newHeader.append($cloneTableHeader);
				$newBody.append($cloneTableBody);

                // 将产生的表头和身体部分放入Container,并做一些微调
                $this.after("<div class='ScrollTableContainer'></div>");
                $this.next().append($newHeader);
                $this.next().append("<div class='ScrollDiv'></div>");
                $this.next().css("width", $this.width() + 18);
				$newHeader.css("width", $this.width() + 19);
				$newBody.css("width", $this.width());
				$this.next().find("div.ScrollDiv").css({
                    "max-height": options.MaxHeight,
                    "width": $this.width() + 17
                });

                $this.next().find("div.ScrollDiv").append($newBody);
                $this.remove();
            });
        }
    });
})(jQuery);