老规矩:先上效果图:

代码实例和其他实例是一起的,稍后分享。

页面

 <div id="reportpan" style="width: 500px;"><table id="CountReport" class=" display table-bordered table-hover" style="overflow-x: scroll; white-space: nowrap; text-align: center !important; color: #000000;" cellspacing="0"></table><div style="text-align: right;"><div id="CallBackPager"></div></div></div>

主要js

ajax返回拼接好的HTML table tr .就是date,

我为什么在后面加“<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>”???

因为 如果date 最后一行中有合并行,冻结就会出现奇怪的现象。。。

 $("#CountReport").html(date+ "<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>"); $("#CountReport tr td ").css("padding", "3");$("#CountReport tr:eq(0)").css("font-size", "14px").css("font-weight", "700");//  $("#CountReport tr:eq(1)").css("font-size", "14px").css("font-weight", "700"); // font-size:14px;font-weight:700var width = $("#reportpan").width;var height = $("#reportpan").height() + 20;FixTable("CountReport", 5, width, height);

function FixTable(TableID, FixColumnNumber, width, height) {debugger;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": "white" });$("#" + TableID + "_tableHead").css({ "overflow": "hidden", "width": width - 17, "position": "relative", "z-index": "45", "background-color": "white" });$("#" + TableID + "_tableColumn").css({ "overflow": "hidden", "height": height - 17, "position": "relative", "z-index": "40", "background-color": "white" });$("#" + TableID + "_tableData").css({ "overflow-x": "scroll", "overflow-y": "hidden", "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());//  if ($("#" + TableID + "_tableData").width() > $("#" + TableID).width()) { //自适应宽//      $("#" + TableID + "_tableData").width($("#" + TableID + "_tableLayout").width());//      $("#" + TableID).width($("#" + TableID + "_tableLayout").width());//  }//  $("#" + TableID + "_tableLayout").height($("#" + TableID + "_tableData").height());//自适应高
}

转载于:https://www.cnblogs.com/LiuFly/p/5076024.html

HTML Table 冻结行列相关推荐

  1. JS组件系列——Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案

    JS组件系列--Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案 参考文章: (1)JS组件系列--Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案 (2) ...

  2. html table 转置,jQuery+CSS实现的table表格行列转置功能示例

    本文实例讲述了jQuery+CSS实现的table表格行列转置功能.分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码如下: www.ddpool.cn jQuery行列转置 table ...

  3. Java POI 导出Excel,设置单元格无法编辑, 开启工作表保护后,依然可以筛选, 冻结行列不移动

    1. 设置单元格无法编辑 // 单元格样式锁定 不可编辑 CellStyle lockStyle = workbook.createCellStyle(); lockStyle.setLocked(t ...

  4. 原生html冻结表头,Table冻结表头示例代码

    Table冻结表头: function fixupFirstRow(tab) { var div=tab.parentNode; if(div.className.toLowerCase()==&qu ...

  5. html5表格两列合并_详解html中表格table的行列合并问题解决

    这篇文章主要介绍了详解html中表格table的行列合并问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 因为要做个网站, ...

  6. html表格table冻结行和列

    2019独角兽企业重金招聘Python工程师标准>>> 转自http://liyinlei.iteye.com/blog/2077714 这种固定行列的方式只适用于IE,并且只适用于 ...

  7. antd的table进行列筛选时,更新dataSource,为什么table显示暂无数据?

    我想当然地认为只要dataSource改变,那么<Table>组件就会重新渲染, 但是有一种特殊情况例外: 在onFilter()中不写筛选条件,在调用filterDropdown进行列筛 ...

  8. excel冻结窗格--冻结行列标题

    在工作的几年里,越来越发现microsoftware的强大.也开始使用excel来做自己的计划和各种各样的事件记录.       说实话,那么强大的功能我仅仅用到了10%或许都不到呢!       对 ...

  9. JQuery实现table冻结列

    由于公司代码框架古老使用静态html画的页面,无法使用bootstrap或easyui实现冻结列 最终再github上面找到的冻结列的实现 github地址 https://qiuyaofan.git ...

最新文章

  1. 分布式链路追踪zipkin
  2. mysql 多库多表_shell脚本建多库、多表、多实例(mysql)
  3. Leetcode 105. 从前序与中序遍历序列构造二叉树 解题思路及C++实现
  4. python下载图片并保存_Python爬虫获取图片并下载保存至本地的实例
  5. arXiv热文解读 | 不懂Photoshop如何P图?交给深度学习吧
  6. js下拉 selenium_selenium 难定位元素,时间插件,下拉框定位,string
  7. ASP.NET温故而知新学习系列之ASP.NET多线程编程—.NET下的多线程编程应用程序域(七)...
  8. mongo学习笔记(二):聚合,游标
  9. 源码安装mysql 5.1_Linux环境下源码编译安装MySQL5.1
  10. CVE-2021-20226:详解 Linux 内核 IO_URING 子系统中的引用计数漏洞
  11. 运营商发展市场空间还剩下哪些模式?
  12. DW集训营数据库Mysql梳理[五]
  13. 如何用photoshop快速换脸
  14. “AIIA”杯-国家电网-电力专业领域词汇挖掘
  15. 权限管理和备份;规范数据库设计
  16. 数字的ASCII码值转为大写字母
  17. 程序员需要了解的硬核知识之操作系统入门
  18. 武汉Uber优步司机奖励政策
  19. ceph报“mon node3 is low on available space”
  20. java编写抖音超火时钟屏保 swing编写

热门文章

  1. python importsystem
  2. D3 Collection
  3. Flask 应用上下文
  4. python jsonpath
  5. C语言 mallocfree
  6. CVE-2020-16875: Microsoft Exchange远程代码执行漏洞通告
  7. Mysql学习总结(47)——MySQL大表优化方案
  8. Ehcache学习总结(3)--Ehcache 整合Spring 使用页面、对象缓存
  9. Spring Boot学习总结(2)——Spring Boot整合Jsp
  10. android 客户端bks,Keytools Https双向认证(Android通用)