html 锁定table,js实现html table 行,列锁定的简单实例

这篇博客介绍了一种JavaScript实现HTML表格行列锁定的简单方法,通过创建克隆表格并设置不同部分的样式来实现固定表头和列的效果。代码示例详细展示了如何在滚动时保持表头和指定列的位置不变,适用于长表格的浏览体验优化。
摘要由CSDN通过智能技术生成

下面小编就为大家带来一篇js实现html table 行,列锁定的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

d1598568d4531a2e5b47dea399e80bce.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 行,列锁定的简单实例全部内容了,希望大家多多支持PHP中文网~

更多js实现html table 行,列锁定的简单实例相关文章请关注PHP中文网!

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值