HTML固定table的字段行,js实现html table 行,列锁定的简单实例

js实现html table 表头,指定列锁定

实现效果如下:

b0e72cbc6688655565de34da824796c6.png

感兴趣的朋友可以直接复制出来运行看效果。

new document

function FixTable(TableID, FixColumnNumber, width, height) {

///

/// 锁定表头和列

/// sorex.cnblogs.com

///

///

/// 要锁定的Table的ID

///

///

/// 要锁定列的个数

///

///

/// 显示的宽度

///

///

/// 显示的高度

///

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

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

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

}

else {

$("#" + TableID).after("

}

$('

+ '

+ '

+ '

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": "50", "background-color": "Silver" });

$("#" + TableID + "_tableHead").css({ "overflow": "hidden", "width": width - 17, "position": "relative", "z-index": "45", "background-color": "Silver" });

$("#" + TableID + "_tableColumn").css({ "overflow": "hidden", "height": height - 17, "position": "relative", "z-index": "40", "background-color": "Silver" });

$("#" + TableID + "_tableData").css({ "overflow": "scroll", "width": width, "height": height, "position": "relative", "z-index": "35" });

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

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

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

}

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

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

$("#" + TableID + "_tableData").css("height", $("#" + TableID + "_tableColumn table").height() + 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());

}

$(document).ready(function () {

FixTable("MyTable", 1, 600, 400);

});

id="MyTable" border="1" cellspacing="0" cellpadding="0">

姓名班级成绩主科文科理科总分语文数学英语政治历史地理物理化学生物

学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526学生32班级1292514628797347891526

以上就是小编为大家带来的js实现html table 行,列锁定的简单实例全部内容了,希望大家多多支持脚本之家~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值