我正在设置一个比较表并希望在用户向下滚动时修复 THEAD,因为它的文本很长。
我在这里找到了解决方案https://stackoverflow.com/a/9669008/1463443。它可以按需要工作。
但是,由于我的页面页脚很庞大 - 进一步向下滚动仍然会显示表格内容之外的固定 THEAD。
我想将这个固定的 THEAD 限制在这个桌子高度,或者最好限制在 #CONTENT div id (不应该在 #Footer 上看到)
这是我正在使用的代码
CSS
table.entries {width: 100%;border-spacing: 0px;margin:0;}
table.entries thead.fixed {position:fixed;top:0;}
Javascript
TableThing = function(params) {
settings = {
table: $('#table'),
thead: []
};
this.fixThead = function() {
// empty our array to begin with
settings.thead = [];
// loop over the first row of td's in <tbody> and get the widths of individual <td>'s
$('tbody tr:eq(1) td', settings.table).each( function(i,v){
settings.thead.push($(v).width());
});
// now loop over our array setting the widths we've got to the <th>'s
for(i=0;i<settings.thead.length;i++) {
$('thead th:eq('+i+')', settings.table).width(settings.thead[i]);
}
// here we attach to the scroll, adding the class 'fixed' to the <thead>
$(window).scroll(function() {
var windowTop = $(window).scrollTop();
if (windowTop > settings.table.offset().top) {
$("thead", settings.table).addClass("fixed");
}
else {
$("thead", settings.table).removeClass("fixed");
}
});
}
}
$(function(){
var table = new TableThing();
table.fixThead();
$(window).resize(function(){
table.fixThead();
});
});