Jquery原生态实现表格header头随滚动条滚动而滚动_jquery
程序员文章站
2022-03-11 08:11:52
...
最近在做一个项目,功能已经实现,突然用户要求表头是浮动的(因为内容在同一页面展示,当滚动时,看不到列头)。由于功能已经实现使用jquery+纯html,为了改动少只能使用jquery原生态实现滚动。
html表头代码:
师资力量
科研
人才培养
职称结构
学位结构
生师比
科研项目
科研成果奖
科研论文
教学单位
本科生数
研究生数
教职工数
高级教职工数
中级教职工数
博士学位职工数
硕士学位教职工数
本科生生师比
研究生生师比
纵向项目
横向项目
*科研成果
部级科研成果
省级科研成果
地级科研成果
校级科研成果
其它科研成果
核心期刊论文
一类奖励期刊论文
二类奖励期刊论文
三类奖励期刊论文
一般期刊论文
国外期刊论文
财务工资
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;//第一行top值,第一行行高与滚动条top值之和
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());//由于表头浮动,对应的表内容自动上移,为了浮动表头不会覆盖表内容,设置空行,高度为表头高
注意:多行表头时,单元格不要使用rowspan属性,否则表头会错位。
html表头代码:
复制代码 代码如下:
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;//第一行top值,第一行行高与滚动条top值之和
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());//由于表头浮动,对应的表内容自动上移,为了浮动表头不会覆盖表内容,设置空行,高度为表头高
注意:多行表头时,单元格不要使用rowspan属性,否则表头会错位。