js锁定表头和列,实现类似execl锁定效果
来源:互联网 发布:好玩的网站源码 编辑:程序博客网 时间:2024/05/21 18:33
js锁定表头和列,实现类似execl锁定效果,项目实现后效果如下:
js代码
<script type="text/javascript">function FixTable(TableID, FixColumnNumber, width, height) { if ($("#" + TableID + "_tableLayout").length != 0) { $("#" + TableID + "_tableLayout").before($("#" + TableID)); $("#" + TableID + "_tableLayout").empty(); } 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": "50", "background-color": "#fff" }); $("#" + TableID + "_tableHead").css({ "overflow": "hidden", "width": width, "position": "relative", "z-index": "45", "background-color": "#fff" }); $("#" + TableID + "_tableColumn").css({ "overflow": "hidden", "height": height, "position": "relative", "z-index": "40", "background-color": "#fff" }); $("#" + 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", 2,600, 400);});/** 1.参数分别为(要锁定的Table的ID,要锁定列的个数,显示的宽度,显示的高度)* 2.显示的宽度,显示的高度在移动端用可使用$(window).width(),$(window).height()*/</script>
对应的html代码
<table id="MyTable"><thead> <tr> <th style="text-align: center; width: 80px" rowspan="3"> 姓名 </th> <th style="text-align: center; width: 80px" rowspan="3"> 班级 </th> <th style="text-align: center" colspan="10"> 成绩 </th> </tr> <tr> <th style="text-align: center" colspan="3"> 主科 </th> <th style="text-align: center" colspan="3"> 文科 </th> <th style="text-align: center" colspan="3"> 理科 </th> <th style="text-align: center; width: 80px" rowspan="2"> 总分 </th> </tr> <tr> <th style="text-align: center; width: 80px"> 语文 </th> <th style="text-align: center; width: 80px"> 数学 </th> <th style="text-align: center; width: 80px"> 英语 </th> <th style="text-align: center; width: 80px"> 政治 </th> <th style="text-align: center; width: 80px"> 历史 </th> <th style="text-align: center; width: 80px"> 地理 </th> <th style="text-align: center; width: 80px"> 物理 </th> <th style="text-align: center; width: 80px"> 化学 </th> <th style="text-align: center; width: 80px"> 生物 </th> </tr></thead> <tbody> <!-- 数据行 --> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> <tr> <td> 姓名32 </td> <td> 班级1 </td> <td> 29 </td> <td> 25 </td> <td> 146 </td> <td> 28 </td> <td> 79 </td> <td> 73 </td> <td> 47 </td> <td> 8 </td> <td> 91 </td> <td> 526 </td> </tr> </tbody></table>
0 0
- js锁定表头和列,实现类似execl锁定效果
- 锁定表头和列
- JS实现table 列锁定
- js方式锁定表头
- jquery实现表头锁定
- Ext以及Coolite下实现表格锁定列和多行表头
- Ext、以及Coolite下实现表格锁定列和多行表头
- 锁定表头和固定列(Fixed table head and columns)
- 锁定表头和固定列(Fixed table head and columns)
- 锁定表头和固定列(Fixed table head and columns)
- 锁定表头和固定列(Fixed table head and columns)
- 锁定表头和固定列(Fixed table head and columns)
- 锁定表头和固定列(Fixed table head and columns)
- 锁定表头和固定列(Fixed table head and columns)
- 锁定表头和固定列(Fixed table head and columns)
- 锁定表头和固定列(Fixed table head and columns)
- js方式锁定表头,原版
- js锁定Table多表头
- React Native 封装原生UI组件并使用的流程(iOS)
- 夫妻性生活和谐的秘诀
- HTML中Array的用法
- ApiDemo--Animation/Seeking
- Ubuntu设置SSH免密登录(不同于CentOS)
- js锁定表头和列,实现类似execl锁定效果
- Android性能优化
- react生命周期
- 重启网卡出现提示:Error, some other host already uses address 10.10.10.25.
- quick-cocos 下载
- thinkpad x230i 笔记本安装win2003操作系统方法
- 十大Intellij IDEA快捷键
- JS中10进制转16进制(小细节)
- Hive ORC数据格式的MapReduce Shuffle