最近在做一個項目,功能已經實現,突然用戶要求表頭是浮動的(因為內容在同一頁面展示,當滾動時,看不到列頭)。由於功能已經實現使用jquery+純html,為了改動少只能使用jquery原生態實現滾動。
html表頭代碼:
. 代碼如下:
<tr class="header" >
<td width="150" style="border-bottom:0px;"> </td>
<td colspan="2" style="border-bottom:0px;"> </td>
<td colspan="7">師資力量</td>
<td colspan="14">科研</td>
<td style="border-bottom:0px;"> </td>
</tr>
<tr class="header">
<td width="150" style="border-top:0px;border-bottom:0px;"> </td>
<td colspan="2" style="border-top:0px;">人才培養</td>
<td colspan="3">職稱結構</td>
<td colspan="2">學位結構</td>
<td colspan="2">生師比</td>
<td colspan="2">科研項目</td>
<td colspan="6">科研成果獎</td>
<td colspan="6">科研論文</td>
<td style="border-top:0px;border-bottom:0px;"> </td>
</tr>
<tr class="header">
<td width="150" style="border-top:0px;">教學單位</td>
<td><a href="javascript:void(0);" id="undergraduate">本科生數</a></td>
<td><a href="javascript:void(0);" id="graduate">研究生數</a></td>
<td>教職工數</td>
<td>高級教職工數</td>
<td>中級教職工數</td>
<td>博士學位職工數</td>
<td>碩士學位教職工數</td>
<td>本科生生師比</td>
<td>研究生生師比</td>
<td>縱向項目</td>
<td>橫向項目</td>
<td>國家級科研成果</td>
<td>部級科研成果</td>
<td>省級科研成果</td>
<td>地級科研成果</td>
<td>校級科研成果</td>
<td>其它科研成果</td>
<td>核心期刊論文</td>
<td>一類獎勵期刊論文</td>
<td>二類獎勵期刊論文</td>
<td>三類獎勵期刊論文</td>
<td>一般期刊論文</td>
<td>國外期刊論文</td>
<td style="border-top:0px;">財務工資</td>
</tr>
jquery代碼:
. 代碼如下:
$(window).scroll(function(){
var headers = $(".header");//獲取所有表頭行,當前的是3行表頭
var yy = $(this).scrollTop();//滾動條top值
if(yy>55){
yy = yy-55;
}
var height1 = yy;//第一行top值
var height2 = $(headers[0]).height()+yy;<span style="font-family:Arial,Helvetica,sans-serif">//第一行top值,第一行行高與</span><span style="font-family:Arial,Helvetica,sans-serif">滾動條top值之和</span><span style="font-family:Arial,Helvetica,sans-serif">
</span> var height3 = $(headers[0]).height()+$(headers[1]).height()+yy;
$(headers[0]).css({"position":"absolute",top:height1+"px"});//浮動行
$(headers[1]).css({"position":"absolute",top:height2+"px"});
$(headers[2]).css({"position":"absolute",top:height3+"px"});
[javascript] view plaincopy
$("#hiddenTd").height($(headers[0]).height()+$(headers[1]).height()+$(headers[2]).height());<span style="font-family:Arial,Helvetica,sans-serif">//由於表頭浮動,對應的表內容自動上移,為了浮動表頭不會覆蓋表內容,設置空行,高度為表頭高</span>
注意:多行表頭時,單元格不要使用rowspan屬性,否則表頭會錯位。