前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >克隆固定表头(固定行列)

克隆固定表头(固定行列)

作者头像
Dlimeng
发布2023-06-28 15:40:00
1260
发布2023-06-28 15:40:00
举报
文章被收录于专栏:开源心路开源心路

JsUtil.fixed = {

FixTableHeadRowCol: function(TableID, FixColumnNumber, width, height) {

if ($("#" + TableID + "_tableLayout").length != 0) {

$("#" + TableID + "_tableLayout").before($("#" + TableID));

$("#" + TableID + "_tableLayout").empty();

$("#" + TableID + "_tableLayout").css("width", width + "px");

$("#" + TableID + "_tableLayout").css("height", height + "px");

} else {

$("#" + TableID).after("<div id='" + TableID + "_tableLayout' style='overflow:hidden;height:" + height + "px; width:" + width + "px;'></div>");

}

$('<div id="' + TableID + '_tableFix"></div>' + '<div id="' + TableID + '_tableHead"></div>' + '<div id="' + TableID + '_tableColumn"></div>' + '<div id="' + TableID + '_tableData"></div>').appendTo("#" + TableID + "_tableLayout");

var oldtable = $("#" + TableID);

var tableFixClone = oldtable.clone(true);

tableFixClone.attr("id", TableID + "_tableFixClone");

$("#" + TableID + "_tableFix").append(tableFixClone);

var tableHeadClone = oldtable.clone(true);

tableHeadClone.attr("id", TableID + "_tableHeadClone");

$("#" + TableID + "_tableHead").append(tableHeadClone);

var tableColumnClone = oldtable.clone(true);

tableColumnClone.attr("id", TableID + "_tableColumnClone");

$("#" + TableID + "_tableColumn").append(tableColumnClone);

$("#" + TableID + "_tableData").append(oldtable);

$("#" + TableID + "_tableLayout table").each(function() {

$(this).css("margin", "0");

});

var HeadHeight = $("#" + TableID + "_tableHead thead").height();

HeadHeight += 2;

$("#" + TableID + "_tableHead").css("height", HeadHeight);

$("#" + TableID + "_tableFix").css("height", HeadHeight);

var ColumnsWidth = 0;

var ColumnsNumber = 0;

$("#" + TableID + "_tableColumn tr:last td:lt(" + FixColumnNumber + ")").each(function() {

ColumnsWidth += $(this).outerWidth(true);

ColumnsNumber++;

});

ColumnsWidth += 2;

if ($.browser.msie) {

switch ($.browser.version) {

case "7.0":

if (ColumnsNumber >= 3) ColumnsWidth--;

break;

case "8.0":

if (ColumnsNumber >= 2) ColumnsWidth--;

break;

}

}

$("#" + TableID + "_tableColumn").css("width", ColumnsWidth);

$("#" + TableID + "_tableFix").css("width", ColumnsWidth);

$("#" + TableID + "_tableData").scroll(function() {

$("#" + TableID + "_tableHead").scrollLeft($("#" + TableID + "_tableData").scrollLeft());

$("#" + TableID + "_tableColumn").scrollTop($("#" + TableID + "_tableData").scrollTop());

});

$("#" + TableID + "_tableFix").css({

"overflow": "hidden",

"position": "relative",

"z-index": "4",

"background-color": "Silver"

});

$("#" + TableID + "_tableHead").css({

"overflow": "hidden",

"width": width - 17,

"position": "relative",

"z-index": "3"

});

$("#" + TableID + "_tableColumn").css({

"overflow": "hidden",

"height": height - 17,

"position": "relative",

"z-index": "2"

});

$("#" + TableID + "_tableData").css({

"overflow": "auto",

"width": width,

"height": height,

"position": "relative",

"z-index": "1"

});

if ($("#" + TableID + "_tableHead").width() > $("#" + TableID + "_tableFix table").width()) {

$("#" + TableID + "_tableHead").css("width", $("#" + TableID + "_tableFix table").width());

}

if ($("#" + TableID + "_tableColumn").height() > $("#" + TableID + "_tableColumn table").height()) {

$("#" + TableID + "_tableColumn").css("height", $("#" + TableID + "_tableColumn table").height());

}

if ($("#" + TableID + "_tableData").width() >= $("#" + TableID + "_tableData table").width()) {

$("#" + TableID + "_tableHead").width($("#" + TableID + "_tableData").width());

}

if ($("#" + TableID + "_tableData").height() < $("#" + TableID + "_tableData table").height() && $("#" + TableID + "_tableData").width() >= $("#" + TableID + "_tableData table").width()) {

$("#" + TableID + "_tableHead").width($("#" + TableID + "_tableData").width() - 17);

}

$("#" + TableID + "_tableFix").offset($("#" + TableID + "_tableLayout").offset());

$("#" + TableID + "_tableHead").offset($("#" + TableID + "_tableLayout").offset());

$("#" + TableID + "_tableColumn").offset($("#" + TableID + "_tableLayout").offset());

$("#" + TableID + "_tableData").offset($("#" + TableID + "_tableLayout").offset());

$("#" + TableID + "_tableColumnClone").width($("#" + TableID).width());

$("#" + TableID + "_tableColumnClone").height($("#" + TableID).height());

}

};

效率低,固定双行或者行列用,慎用

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档