HTML表头冻结

####html冻结表头方案:

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery固定表头表格滚动数据效果</title>
 <style type="text/css">
        .fakeContainer
        {
            padding: 0px;
            border: none;
            left: 3px;
            top: 180px;
            width: 50%; /* 宽度 */
            height: 200px; /* 垂直高度,超过出现滚动条 */
            overflow: hidden; /* Required to set */
            /*overflow-y: auto;
            overflow-x: hidden; 可实现滚动条:竖着出现,横着不出现*/
        }
    </style>
	
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript" src="superTables_compressed.js"></script> 
<link href="superTables_compressed.css" rel="stylesheet">

 <script>
 $(function(){
	new superTable("demoTable", {
					cssSkin: "sDefault",//表格皮肤,提供四套:sDefault、sOrange、sSky、sDark(黑背白字)
					headerRows:1,//冻结行数
					fixedCols:1//冻结列数
				});
 });
 </script>
	
</head>
<body>

    <div class="fakeContainer">
	<!--table的width必须100%才好-->
<table id="demoTable" style="margin: 0 auto; border: 1px solid #82B3C9;width:100%;margin-top: -5px;" class="sDefault sDefault-Main" cellpadding="0" cellspacing="0">
 
	<tr>
		<th>名称</th>
		<th>作者</th>
		<th>备注</th>
	</tr>
 
	<tr>
		<td>《啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊》</td>
		<td>啊啊啊啊</td>
		<td>啊啊啊啊付付付付付付付付付付付付付付付付</td>
	</tr>
	<tr>
		<td>《啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊》</td>
		<td>啊啊啊啊</td>
		<td>啊啊啊啊付付付付付付付付付付付付付付付付</td>
	</tr> <tr>
		<td>《啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊》</td>
		<td>啊啊啊啊</td>
		<td>啊啊啊啊付付付付付付付付付付付付付付付付</td>
	</tr><tr>
		<td>《啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊》</td>
		<td>啊啊啊啊</td>
		<td>啊啊啊啊付付付付付付付付付付付付付付付付</td>
	</tr><tr>
		<td>《啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊》</td>
		<td>啊啊啊啊</td>
		<td>啊啊啊啊付付付付付付付付付付付付付付付付</td>
	</tr><tr>
		<td>《啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊》</td>
		<td>啊啊啊啊</td>
		<td>啊啊啊啊付付付付付付付付付付付付付付付付</td>
	</tr><tr>
		<td>《啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊》</td>
		<td>啊啊啊啊</td>
		<td>啊啊啊啊付付付付付付付付付付付付付付付付</td>
	</tr><tr>
		<td>《啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊》</td>
		<td>啊啊啊啊</td>
		<td>啊啊啊啊付付付付付付付付付付付付付付付付</td>
	</tr><tr>
		<td>《啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊》</td>
		<td>啊啊啊啊</td>
		<td>啊啊啊啊付付付付付付付付付付付付付付付付</td>
	</tr><tr>
		<td>《啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊》</td>
		<td>啊啊啊啊</td>
		<td>啊啊啊啊付付付付付付付付付付付付付付付付</td>
	</tr><tr>
		<td>《啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊》</td>
		<td>啊啊啊啊</td>
		<td>啊啊啊啊付付付付付付付付付付付付付付付付</td>
	</tr><tr>
		<td>《啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊》</td>
		<td>啊啊啊啊</td>
		<td>啊啊啊啊付付付付付付付付付付付付付付付付</td>
	</tr>
</table></div>
 
</body>
</html>
  • superTables_compressed.js文件源码
/* Super Tables v0.30 - MIT Style License --- Copyright (c) 2008 Matt Murphy, www.matts411.com --- Contributors: Joe Gallo */
/* Compressed with Dean Edwards' /Packer/ v3.0 --- http://dean.edwards.name/packer/ */
var superTable=function(tableId,options){options=options||{};this.cssSkin=options.cssSkin||"";this.headerRows=parseInt(options.headerRows||"2");this.fixedCols=parseInt(options.fixedCols||"0");this.colWidths=options.colWidths||[];this.initFunc=options.onStart||null;this.callbackFunc=options.onFinish||null;this.initFunc&&this.initFunc();this.sBase=document.createElement("DIV");this.sFHeader=this.sBase.cloneNode(false);this.sHeader=this.sBase.cloneNode(false);this.sHeaderInner=this.sBase.cloneNode(false);this.sFData=this.sBase.cloneNode(false);this.sFDataInner=this.sBase.cloneNode(false);this.sData=this.sBase.cloneNode(false);this.sColGroup=document.createElement("COLGROUP");this.sDataTable=document.getElementById(tableId);this.sDataTable.style.margin="0px";if(this.cssSkin!==""){this.sDataTable.className+=" "+this.cssSkin}if(this.sDataTable.getElementsByTagName("COLGROUP").length>0){this.sDataTable.removeChild(this.sDataTable.getElementsByTagName("COLGROUP")[0])}this.sParent=this.sDataTable.parentNode;this.sParentHeight=this.sParent.offsetHeight;this.sParentWidth=this.sParent.offsetWidth;this.sBase.className="sBase";this.sFHeader.className="sFHeader";this.sHeader.className="sHeader";this.sHeaderInner.className="sHeaderInner";this.sFData.className="sFData";this.sFDataInner.className="sFDataInner";this.sData.className="sData";var alpha,beta,touched,clean,cleanRow,i,j,k,m,n,p;this.sHeaderTable=this.sDataTable.cloneNode(false);if(this.sDataTable.tHead){alpha=this.sDataTable.tHead;this.sHeaderTable.appendChild(alpha.cloneNode(false));beta=this.sHeaderTable.tHead}else{alpha=this.sDataTable.tBodies[0];this.sHeaderTable.appendChild(alpha.cloneNode(false));beta=this.sHeaderTable.tBodies[0]}alpha=alpha.rows;for(i=0;i<this.headerRows;i++){beta.appendChild(alpha[i].cloneNode(true))}this.sHeaderInner.appendChild(this.sHeaderTable);if(this.fixedCols>0){this.sFHeaderTable=this.sHeaderTable.cloneNode(true);this.sFHeader.appendChild(this.sFHeaderTable);this.sFDataTable=this.sDataTable.cloneNode(true);this.sFDataInner.appendChild(this.sFDataTable)}alpha=this.sDataTable.tBodies[0].rows;for(i=0,j=alpha.length;i<j;i++){clean=true;for(k=0,m=alpha[i].cells.length;k<m;k++){if(alpha[i].cells[k].colSpan!==1||alpha[i].cells[k].rowSpan!==1){i+=alpha[i].cells[k].rowSpan-1;clean=false;break}}if(clean===true)break}cleanRow=(clean===true)?i:0;for(i=0,j=alpha[cleanRow].cells.length;i<j;i++){if(i===this.colWidths.length||this.colWidths[i]===-1){this.colWidths[i]=alpha[cleanRow].cells[i].offsetWidth}}for(i=0,j=this.colWidths.length;i<j;i++){this.sColGroup.appendChild(document.createElement("COL"));this.sColGroup.lastChild.setAttribute("width",this.colWidths[i])}this.sDataTable.insertBefore(this.sColGroup.cloneNode(true),this.sDataTable.firstChild);this.sHeaderTable.insertBefore(this.sColGroup.cloneNode(true),this.sHeaderTable.firstChild);if(this.fixedCols>0){this.sFDataTable.insertBefore(this.sColGroup.cloneNode(true),this.sFDataTable.firstChild);this.sFHeaderTable.insertBefore(this.sColGroup.cloneNode(true),this.sFHeaderTable.firstChild)}if(this.cssSkin!==""){this.sDataTable.className+=" "+this.cssSkin+"-Main";this.sHeaderTable.className+=" "+this.cssSkin+"-Headers";if(this.fixedCols>0){this.sFDataTable.className+=" "+this.cssSkin+"-Fixed";this.sFHeaderTable.className+=" "+this.cssSkin+"-FixedHeaders"}}if(this.fixedCols>0){this.sBase.appendChild(this.sFHeader)}this.sHeader.appendChild(this.sHeaderInner);this.sBase.appendChild(this.sHeader);if(this.fixedCols>0){this.sFData.appendChild(this.sFDataInner);this.sBase.appendChild(this.sFData)}this.sBase.appendChild(this.sData);this.sParent.insertBefore(this.sBase,this.sDataTable);this.sData.appendChild(this.sDataTable);var sDataStyles,sDataTableStyles;this.sHeaderHeight=this.sDataTable.tBodies[0].rows[(this.sDataTable.tHead)?0:this.headerRows].offsetTop;sDataTableStyles="margin-top: "+(this.sHeaderHeight*-1)+"px;";sDataStyles="margin-top: "+this.sHeaderHeight+"px;";sDataStyles+="height: "+(this.sParentHeight-this.sHeaderHeight)+"px;";if(this.fixedCols>0){this.sFHeaderWidth=this.sDataTable.tBodies[0].rows[cleanRow].cells[this.fixedCols].offsetLeft;if(window.getComputedStyle){alpha=document.defaultView;beta=this.sDataTable.tBodies[0].rows[0].cells[0];if(navigator.taintEnabled){this.sFHeaderWidth+=Math.ceil(parseInt(alpha.getComputedStyle(beta,null).getPropertyValue("border-right-width"))/2)}else{this.sFHeaderWidth+=parseInt(alpha.getComputedStyle(beta,null).getPropertyValue("border-right-width"))}}else if(/*@cc_on!@*/0){alpha=this.sDataTable.tBodies[0].rows[0].cells[0];beta=[alpha.currentStyle["borderRightWidth"],alpha.currentStyle["borderLeftWidth"]];if(/px/i.test(beta[0])&&/px/i.test(beta[1])){beta=[parseInt(beta[0]),parseInt(beta[1])].sort();this.sFHeaderWidth+=Math.ceil(parseInt(beta[1])/2)}}if(window.opera){this.sFData.style.height=this.sParentHeight+"px"}this.sFHeader.style.width=this.sFHeaderWidth+"px";sDataTableStyles+="margin-left: "+(this.sFHeaderWidth*-1)+"px;";sDataStyles+="margin-left: "+this.sFHeaderWidth+"px;";sDataStyles+="width: "+(this.sParentWidth-this.sFHeaderWidth)+"px;"}else{sDataStyles+="width: "+this.sParentWidth+"px;"}this.sData.style.cssText=sDataStyles;this.sDataTable.style.cssText=sDataTableStyles;(function(st){if(st.fixedCols>0){st.sData.onscroll=function(){st.sHeaderInner.style.right=st.sData.scrollLeft+"px";st.sFDataInner.style.top=(st.sData.scrollTop*-1)+"px"}}else{st.sData.onscroll=function(){st.sHeaderInner.style.right=st.sData.scrollLeft+"px"}}if(/*@cc_on!@*/0){window.attachEvent("onunload",function(){st.sData.onscroll=null;st=null})}})(this);this.callbackFunc&&this.callbackFunc()};

  • superTables_compressed.css文件源码:
/* Super Tables v0.30 - MIT Style License --- Copyright (c) 2008 Matt Murphy, www.matts411.com --- Contributors: Joe Gallo */
.sBase{position:relative;width:100%;height:100%;overflow:hidden;}
.sHeader{position:absolute;z-index:3;background-color:#eeeeee;}
.sHeaderInner{position:relative;}
.sHeaderInner table{border-spacing:0px 0px !important;border-collapse:collapse !important;width:1px !important;table-layout:fixed !important;background-color:#ffffff;}
.sFHeader{position:absolute;z-index:4;overflow:hidden;}
.sFHeader table{border-spacing:0px 0px !important;border-collapse:collapse !important;width:1px !important;table-layout:fixed !important;background-color:#ffffff;}
.sData{position:absolute;z-index:2;overflow:auto;background-color:#ffffff;}
.sData table{border-spacing:0px 0px !important;border-collapse:collapse !important;width:1px !important;table-layout:fixed !important;}
.sFData{position:absolute;z-index:1;background-color:#eeeeee;}
.sFDataInner{position:relative;}
.sFData table{border-spacing:0px 0px !important;border-collapse:collapse !important;width:1px !important;table-layout:fixed !important;}
/* Super Tables - Skin Classes - Remove if not needed */
.sDefault{margin:0px;padding:0px;border:none;font-family:Verdana, Arial, sans serif;font-size:12px;}
.sDefault th, .sDefault td{border:1px solid #cccccc;padding:3px 6px 3px 4px;white-space:nowrap;}
.sDefault th{background-color:#e5e5e5;border-color:#c5c5c5;}
.sDefault-Fixed{background-color:#eeeeee;border-color:#c5c5c5;}
.sSky{margin:0px;padding:0px;border:none;font-family:Verdana, Arial, sans serif;font-size:12px;}
.sSky th, .sSky td{border:1px solid #9eb6ce;padding:3px 6px 3px 4px;white-space:nowrap;}
.sSky th{background-color:#CFDCEE;}
.sSky-Fixed{background-color:#e4ecf7;}
.sOrange{margin:0px;padding:0px;border:none;font-family:Verdana, Arial, sans serif;font-size:12px;}
.sOrange th, .sOrange td{border:1px solid #cebb9e;padding:3px 6px 3px 4px;white-space:nowrap;}
.sOrange th{background-color:#ECD8C7;}
.sOrange-Fixed{background-color:#f7ede4;}
.sDark{margin:0px;padding:0px;border:none;font-family:Verdana, Arial, sans serif;font-size:12px;color:#ffffff;}
.sDark th, .sDark td{border:1px solid #555555;padding:3px 6px 3px 4px;white-space:nowrap;}
.sDark th{background-color:#000000;}
.sDark-Fixed{background-color:#222222;}
.sDark-Main{background-color:#333333;}

table表头-表列固定:iscroll-probe.min.js——github资源。

  • iScroll是一个高性能,资源占用少,无依赖,跨平台的javascript上拉加载,下拉刷新的滚动插件。
  • iScroll典型的应用场景位于移动设备的App。
  • Cordova/Phonegap + JQM + iScroll开发移动设备上的App,对于以数据呈现为主体的企业应用来讲无疑是一个多快好省的解决方案。
  • iScroll 5 API 中文版
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值