由于table是由tr、td等进行布局的,所有不能单独的对表格中的某一行或者某一列进行定位或者固定之类的,但是工作中常常会有过长的表格需要处理,下面给大家介绍一种方法,保持原有的表格不变,在表格的上一层copy一个表格出来,对整个表格进行固定!


不多说,看代码!!!
CSS样式如下(当然也可以自己更改)这都是在JS里面要调用的

.LockRow /*固定行的样式*/
{position: relative;top:0;z-index:2;border: 1px solid #bbc8c8;
}
.LockCell /*固定列的样式*/
{position: relative;left:0;z-index:2;border: 1px solid #bbc8c8;
}
.LockCross /*行列交叉处样式*/
{z-index:3;border: 1px solid #bbc8c8;
}
.divBoxing /*外出div样式*/
{clear:both;overflow-x: scroll;position:relative;
}
.tbLock /*设置单元格间隙的样式*/
{border-collapse:collapse;
}
.lockRowCss{background-color: white;
}
.lockRowBg
{background-image:url('/Styles/images/png_back.png');background-position:0 -960px;background-repeat:repeat-x;line-height:24px;border:1px solid #bbc8c8
}
.lockColumnBg {background-color: white;border-right: 1px solid #bbc8c8 !important;border-left:1px solid #bbc8c8 !important;
}

下面是JS代码,直接拷过去就可以用

/*** Created by Blue on 2016/1/2.*/
var n=0;
(function($) {$.extend($.fn, {TableLock: function(options) {var tl = $.extend({table:'lockTable',//table的idlockRow:1,//固定行数lockColumn:1,//固定列数width:'100%',//表格显示宽度(实质是外出div宽度)//height:'100%',//表格显示高度(实质是外出div高度)lockRowCss:'lockRowBg',//锁定行的样式lockColumnCss:'lockColumnBg'//锁定列的样式}, options);var tableId=tl.table;var table=$('#'+tableId);if(table){var box=$("<div class='divBoxing' id='divBoxing'></div>").scroll(function(){//在此处添加事件$('.LockRow').css('top',$(this).attr('scrollTop')+'px');$('.LockCell').css('left',$(this).attr('scrollLeft')+'px');});var Height=table.attr("height");//动态获取内层table的高度,让滚动条始终紧贴table的下部box.css('width',tl.width).css('height',Height);//设置高度和宽度//外层标签只加一次,避免多次执行时出现纵向滚动条叠加if(n==0){table.wrap(box);n=1;}table.addClass('tbLock');if(tl.lockRow>0){var tr;for(var r=0;r<tl.lockRow;r++){//添加行锁定tr=table.find('tr:eq('+r+')').addClass('LockRow').addClass(tl.lockRowCss);//设置交叉单元格样式,除了锁定单元格外还有交叉单元格自身样式for(var c=0;c<tl.lockColumn;c++){if(tr){tr.find('td:eq('+c+')').addClass('LockCell LockCross').addClass(tl.lockRowCss);}}}}if(tl.lockColumn>0){var rowNum=$('#'+tableId+' tr').length;var tr;for(var r=(tl.lockRow);r<rowNum;++r){tr=table.find('tr:eq('+r+')');for(var c=0;c<tl.lockColumn;++c){//添加列锁定tr.find('td:eq('+c+')').addClass('LockCell LockCross').addClass(tl.lockColumnCss);}}}}else{alert('没有找到对应的table元素,请确保table属性正确性!');}}});
})(jQuery);

下面是调用方法,由于我是基于jquery进行封装的,所以调用的时候当然是要引入jquery文件的哈,这里就不多说了

 $.fn.TableLock({table:'表格的ID',lockRow:锁定行数量,lockColumn:锁定的列数量,width:'100%'})

再啰嗦一下,默认滚动条是紧贴着表格的下边的,如果要自己单独设置高度,就在调用的时候加上height,同时在JS文件内部把 //height:’100%’删除
还有 var Height=table.attr("height");也删除
最后一点:box.css('width',tl.width).css('height',Height)里面的Height改为t1.height

table表格锁定任意数量列或行相关推荐

  1. html table 筛选记录,JS实现table表格内针对某列内容进行即时搜索筛选功能

    JS实现table表格内针对某列内容进行即时搜索筛选功能 发布时间:2020-08-29 09:26:37 来源:脚本之家 阅读:103 作者:Marx-link 本文实例讲述了JS实现table表格 ...

  2. vue获取table一列数据_VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)...

    一.问题 用elementUi横着增加一行数据没毛病,可以操作 添加一列,这新增的这一列, 第一次去赋值的时候值是改了, 但没生效 点击下一行时 值就变过来 二.原因 横向添加 是复制上面的某一条数据 ...

  3. php搜索表格,table表格内对某列内容进行搜索筛选步骤详解

    这次给大家带来table表格内对某列内容进行搜索筛选步骤详解,table表格内对某列内容进行搜索筛选的注意事项有哪些,下面就是实战案例,一起来看一下. 往往有些时候,我们把数据从数据库读取出来,显示到 ...

  4. 表格锁定头和列中间内容展示

    表格锁定头和列中间内容展示 jQuery前端table插件,表格顶部头和左右两边列锁定,通过上下和左右滚动展示表格内容,支持内容修改功能.无法兼容所有浏览器,在IE8(H5的效果无效).需要layui ...

  5. html表格新插入一列,VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-...

    一.问题用elementUi横着增加一行数据没毛病,可以操作 添加一列,这新增的这一列, 第一次去赋值的时候值是改了, 但没生效 点击下一行时 值就变过来 二.原因横向添加 是复制上面的某一条数据来的 ...

  6. excel表格内数据为何无法计算机,电脑EXCEL表格怎么让隐藏列(行)中的数据不被复制...

    电脑EXCEL表格怎么让隐藏列(行)中的数据不被复制 我们即便在excel中隐藏了列(行),依旧可以显示出来并被复制.今天小编就告诉大家电脑EXCEL表格怎么让隐藏列(行)中的数据不被复制. 具体如下 ...

  7. vue element ui合并表格(合并某列的行数据)

    需求:按需合并某些列的数据 自定义数据: tableData:[ { num:0, new_subject_name:"new_subject_name1", count1:&qu ...

  8. table表格固定前几列,其余的滚动

    我查了好多资料,只找到一个demo <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""h ...

  9. BootStrap自适应Table表格固定左边第一列

    有个页面引用了BootStrap前端框架,这个页面是一个table,要放在手机上浏览.这个table的左侧第一列是要固定的.所谓第一列固定,就是在横向滚动的时候第一列一直显示在最左侧.网上查了下方法, ...

最新文章

  1. KaliLinux常用服务配置教程DHCP服务工作流程
  2. javascript 之 push方法
  3. Maven教程(3)--Maven导入工程常见问题(编码、MavenArchiver、Lifecycle Mapping、maven install 没有反应)...
  4. 最优化理论与方法(part3)--矩阵的Rayleigh商
  5. python3读取linux文件,Python3读取文件小技巧
  6. java queue 线程安全_详解Java高并发——设计线程安全的类
  7. SpringCloud 2020.x.x工程bootstrap引导配置不生效的解决方案
  8. 编程军规 —— Java 篇
  9. Hive map阶段缓慢,优化过程详细分析
  10. 现有产品的三种发展战略
  11. Win7系统中unity web player是什么程序
  12. 矩阵卷积运算的具体过程,很简单
  13. WPS文字设置奇偶页眉、下划线的方法步骤
  14. 面试时候HR问你的职业规划?
  15. RabbitMq:java.lang.NoClassDefFoundError: org/springframework/util/backoff/BackOff
  16. 批量识别图片中文字(python、百度开发者工具)
  17. KBQA知识总结(学习笔记)
  18. 微信推文中图片无法保存的解决方案
  19. 自然科学类计算机,自然科学基金委员会
  20. 对互联网行业的认知!

热门文章

  1. Python类中的方法要加self的理由
  2. Stimulsoft Reports.JS 2021.3.6 Crack
  3. php红包退回通知,php红包
  4. 【前端】Vue+Element UI案例:通用后台管理系统-用户管理:Form表单填写、Dialog对话框弹出
  5. 深度解析!短视频如何成为现象级产品
  6. 计算机项目管理缩写,项目管理-常用缩写word版
  7. 计算机网络原理 谢希仁(第8版)第三章习题答案
  8. android 权限整理
  9. linux 误删文件恢复
  10. DataSec数据防泄密系统