jq表头固定
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title></title>
- </head>
- <style type="text/css">
- #table-container{width:650px;height:250px;overflow: auto;margin: 50px;border: 1px solid #DDD;}
- #table-container table{width: 100%;border-width: 0;border-collapse: collapse;}
- #table-container table td{padding: 0;border-right: 1px solid #DDD;border-bottom: 1px solid #DDD;background: #FFF;}
- #table-container .table-top td, #table-container .table-lt td, #table-container .table-left td{background: green;}
- #table-container .table-top td:last-child{border-right: 0px solid #DDD;}
- #table-container .table-right td:last-child{border-right: 0px solid #DDD;}
- #table-container .table-right tr:last-child td{border-bottom: 0px solid #DDD;}
- #table-container .table-left tr:last-child td{border-bottom: 0px solid #DDD;}
- #table-container td div{display: inline-block;max-width: 200px;margin:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align: left;line-height: 24px;}
- #table-container .table-lt{position: fixed;z-index:3;}
- #table-container .table-top{position: fixed;overflow:hidden;z-index:2;}
- #table-container .table-left{position: fixed;overflow:hidden;z-index:2;}
- #table-container .table-right{position: relative;z-index:1;}
- #table-container .table-mask{position: relative;}
- </style>
- <body>
- <div id="table-container">
- <table>
- <tbody>
- <tr><td>
- <div>header-left-top</div>
- </td>
- <td>
- <div>topTitle1</div>
- </td>
- <td>
- <div>topTitle2</div>
- </td>
- <td>
- <div>topTitle3</div>
- </td>
- <td>
- <div>topTitle4</div>
- </td>
- <td>
- <div>topTitle5</div>
- </td>
- </tr>
- <tr>
- <td>
- <div>leftTitle1</div>
- </td>
- <td>
- <div>uoifdfdfuiuiouiouuoifdfdfuiuiouiouuoifdfdfuiuiouiouuoifdfdfuiuiouioud</div>
- </td>
- <td>
- <div>uoifdfdfuiuiouiou</div>
- </td>
- <td>
- <div>uoiuiufdiouiou</div>
- </td>
- <td>
- <div>uoiuiufdsfsdfiouiou</div>
- </td>
- <td>
- <div>uoiuiusiouiou</div>
- </td>
- </tr>
- <tr>
- <td>
- <div>leftTitle2</div>
- </td>
- <td>
- <div>uoiuiuiouiou</div>
- </td>
- <td>
- <div>uoifdfdfuiuiouiouuoifdfdfuiuiouiouuoifdfdfuiuiouiouuoifdfdfuiuiouiou</div>
- </td>
- <td>
- <div>uoiuiufdiouiou</div>
- </td>
- <td>
- <div>uoiuiufdsfsdfiouiou</div>
- </td>
- <td>
- <div>uoiuiusiouiou</div>
- </td>
- </tr>
- <tr>
- <td>
- <div>leftTitle3</div>
- </td>
- <td>
- <div>uoiuiuiouiou</div>
- </td>
- <td>
- <div>uoifdfdfuiuiouiou</div>
- </td>
- <td>
- <div>uoiuiufdiouiou</div>
- </td>
- <td>
- <div>uoiuiufdsfsdfiouiou</div>
- </td>
- <td>
- <div>uoiuiusiouiou</div>
- </td>
- </tr>
- <tr>
- <td>
- <div>leftTitle4</div>
- </td>
- <td>
- <div>uoiuiuiouiou</div>
- </td>
- <td>
- <div>uoifdfdfuiuiouiou</div>
- </td>
- <td>
- <div>uoiuiufdiouiou</div>
- </td>
- <td>
- <div>uoiuiufdsfsdfiouiou</div>
- </td>
- <td>
- <div>uoiuiusiouiou</div>
- </td>
- </tr>
- <tr>
- <td>
- <div>leftTitle5</div>
- </td>
- <td>
- <div>uoiuiuiouiou</div>
- </td>
- <td>
- <div>uoifdfdfuiuiouiou</div>
- </td>
- <td>
- <div>uoiuiufdiouiou</div>
- </td>
- <td>
- <div>uoiuiufdsfsdfiouiou</div>
- </td>
- <td>
- <div>uoiuiusiouiou</div>
- </td>
- </tr>
- <tr>
- <td>
- <div>leftTitle6</div>
- </td>
- <td>
- <div>uoiuiuiouiou</div>
- </td>
- <td>
- <div>uoifdfdfuiuiouiou</div>
- </td>
- <td>
- <div>uoiuiufdiouiou</div>
- </td>
- <td>
- <div>uoiuiufdsfsdfiouiou</div>
- </td>
- <td>
- <div>uoiuiusiouiou</div>
- </td>
- </tr>
- <tr>
- <td>
- <div>leftTitle7</div>
- </td>
- <td>
- <div>uoiuiuiouiou</div>
- </td>
- <td>
- <div>uoifdfdfuiuiouiou</div>
- </td>
- <td>
- <div>uoiuiufdiouiou</div>
- </td>
- <td>
- <div>uoiuiufdsfsdfiouiou</div>
- </td>
- <td>
- <div>uoiuiusiouiou</div>
- </td>
- </tr>
- <tr>
- <td>
- <div>leftTitle8</div>
- </td>
- <td>
- <div>uoiuiuiouiou</div>
- </td>
- <td>
- <div>uoifdfdfuiuiouiou</div>
- </td>
- <td>
- <div>uoiuiufdiouiou</div>
- </td>
- <td>
- <div>uoiuiufdsfsdfiouiou</div>
- </td>
- <td>
- <div>uoiuiusiouiou</div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <script src="js/jquery-1.12.4.min.js"></script>
- <script type="text/javascript">
- $.fn.scrollTab = function(){
- var container = this;
- container.find("table").after('<div class="table-lt" /><div class="table-top" /><div class="table-left" /><div class="table-right" />');
- var ltTable = container.find(".table-lt"),
- topTable = container.find(".table-top"),
- leftTable = container.find(".table-left"),
- rightTable = container.find(".table-right");
- var tab_lt = this.find("tbody tr:first-child td:first-child").remove(),
- tab_top = this.find("tbody tr:first-child").remove(),
- tab_left = this.find("tbody tr td:first-child").remove(),
- tab_right = this.find("table");
- this.find("table").remove();
- ltTable.html('<table><tbody></tbody></table>').find("tbody").append(tab_lt[0]);
- topTable.html('<div class="table-mask"><table><tbody></tbody></table></div>').find("tbody").append(tab_top);
- leftTable.html('<div class="table-mask"><table><tbody></tbody></table></div>');
- for(var td of tab_left){
- var tr = document.createElement("tr")
- tr.append(td)
- leftTable.find("tbody").append(tr)
- }
- rightTable.append(tab_right[0]);
- var containerWidth = 0,
- containerHeight =0,
- ltTableWidth = 0,
- ltTableHeight = 0,
- widthJson = {},
- timerLT = null;
- ltTableWidth = ltTable.width();
- ltTable.width(ltTableWidth);
- topTable.css("marginLeft",ltTableWidth);
- leftTable.width(ltTableWidth);
- rightTable.css("marginLeft",ltTableWidth);
- ltTableHeight = ltTable.height();
- leftTable.css("marginTop",ltTableHeight+"px");
- rightTable.css("marginTop",ltTableHeight+"px");
- containerHeight = container.height();
- containerWidth = container.width();
- topTable.width(containerWidth - ltTableWidth - (container.innerWidth() - container[0].clientWidth));
- leftTable.height(containerHeight - ltTableHeight - (container.innerHeight() - container[0].clientHeight));
- // figure out the width of each DIV in TD --start
- function setDivWidth(obj){
- $(obj).find("div").each(function(index){
- if(!widthJson[index]){
- widthJson[index] = 0;
- }
- if(widthJson[index]<$(this).width()) {
- widthJson[index] = $(this).width();
- }
- });
- }
- topTable.find("tr").each(function(){
- setDivWidth(this);
- });
- rightTable.find("tr").each(function(){
- setDivWidth(this);
- });
- topTable.find("tr:first div").each(function(index){
- $(this).width(widthJson[index]);
- });
- rightTable.find("tr:first div").each(function(index){
- $(this).width(widthJson[index]);
- });
- // figure out the width of each DIV in TD --end
- container.scroll(function(){
- var currentScrollTop = $(this).scrollTop(),
- currentScrollLeft = $(this).scrollLeft();
- topTable.find(".table-mask").css("left", -currentScrollLeft+"px");
- leftTable.find(".table-mask").css("top", -currentScrollTop+"px");
- });
- $(document).scroll(function(){
- var currentScrollTop = $(this).scrollTop(),
- currentScrollLeft = $(this).scrollLeft();
- ltTable.css("marginTop", -currentScrollTop+"px");
- ltTable.css("marginLeft", -currentScrollLeft+"px");
- topTable.css("marginTop", -currentScrollTop+"px");
- topTable.css("marginLeft", ltTableWidth - currentScrollLeft+"px");
- leftTable.css("marginTop", ltTableHeight - currentScrollTop+"px");
- leftTable.css("marginLeft", -currentScrollLeft+"px");
- });
- $(window).resize(function(){
- $(document).scroll();
- });
- timerLT = setInterval(function(){
- if(containerWidth != container.width() || containerHeight != container.height()){
- topTable.width(container.width() - ltTableWidth - (container.innerWidth() - container[0].clientWidth));
- leftTable.height(container.height() - ltTableHeight - (container.innerHeight() - container[0].clientHeight));
- containerWidth = container.width();
- containerHeight = container.height();
- container.scroll();// for IE
- };
- },0);
- }
- $("#table-container").scrollTab();
- </script>
- </body>
- </html>
jq表头固定的更多相关文章
- html bootstrap 表头固定在顶部,表列 可以自由滚动的效果
该效果主要是依照 bootstrap 的一个样式,class="navbar-fixed-top"; 参考网址为:http://v3.bootcss.com/components/ ...
- html css 如何将表头固定(转)
html css 如何将表头固定 position属性取值为fixed时,则元素的位置将不受滚动条的影响,而是直接依据窗口定位,这就是将表头固定的最直接方法,网上其他途径感觉都是在走弯路.但是与此同时 ...
- IE的表头固定/表头不动(使用expression)
本文主要介绍在IE浏览器中,实现表头固定的一种方法.这种方法使用到了 IE 浏览器特有的 expression 方法. 表头固定DEMO1 主要代码: <style type="tex ...
- 纯CSS实现table表头固定(自创备忘)
因为之前约定时候产品没说要表头固定,这次迭代测试突然提出这个需求,而且不知道因为什么未知原因非要这样不可--因为之前用了table标签做表单,而且也没用插件,这下就难了点,找另外一个前端前辈妹子商量了 ...
- easyui datagrid 表头固定(垂直滚动条)、列固定(水平滚动条)
easyui datagrid 表头固定(垂直滚动条).列固定(水平滚动条),每页显示1000行 最近用多了easyui 之后还是觉得它的功能还是很强大的.它原有的功能就已经能够满足90%以上的界面需 ...
- html css 如何将表头固定
position属性取值为fixed时,则元素的位置将不受滚动条的影响,而是直接依据窗口定位,这就是将表头固定的最直接方法,网上其他途径感觉都是在走弯路.但是与此同时必须解决两个问题.第一:表体将随之 ...
- jQuery,Table表头固定插件chromatable存在的问题及解决办法
在最近的项目中需要将表格的表头固定,搜寻了大量的资料,发现chromatable插件还是比较方便的.但是当我在一个页面中多次使用 chromatable固定对个表格的表头时问题就出现了,首先说明系统的 ...
- div+css实现表头固定内容滚动表格
<div class="m-demo"> <table> <thead> <tr><th>定宽a</th>& ...
- bootstrap-table固定表头固定列
1.引入 bootstrap依赖于jquery bootstrap-table依赖于bootstrap,所以都需要引入 2. bootstrap-table有两种方式,html.js <tabl ...
随机推荐
- AD_TLC549采集模拟信号
AD_TLC549采集模拟信号 实验原理 芯片介绍 TLC549是 TI公司生产的一种低价位.高性能的8位A/D转换器,它以8位开关电容逐次逼近的方法实现 A/D转换,其转换速度小于 17us,最大转 ...
- 转发 VS 重定向
转发:JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程.以前的request中存放的变量全部失效,并进入一个新的request作用域. 重定向:第一 ...
- 【OpenJudge 8463】Stupid cat & Doge
http://noi.openjudge.cn/ch0204/8463/ 挺恶心的一道简单分治. 一开始准备非递归. 大if判断,后来发现代码量过长,决定大打表判断后继情况,后来发现序号不对称. 最后 ...
- CSS3幻灯片制作心得
大神勿喷,这是小弟自己学习的痕迹. CSS3动画效果核心代码 @keyframes slideLeft { 0% { left: -500px; } 100% { ; } } @keyframes s ...
- 关于分页接口设计(下拉刷新上拉加载原理,解决page count请求重复数据的问题)
- web前端基础知识-(一)html基本操作
1. HTML概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样 ...
- IntelliJ IDEA 15 在线激活地址
License server,直接输入http://www.iteblog.com/idea/key.php地址即可激活IntelliJ IDEA 15:
- windows下pip安装python模块时报错总结
http://www.cnblogs.com/liaojiafa/p/5100550.html 前言: 这几天把python版本升级后,发现pip安装模块好多都报错(暂不确定是不是因为升级导致的),我 ...
- 转-ArcGIS Engine中的License设置
AE开发中的License有两种方法进行设置,一种是通过LicenseControl控件,另一种是通过IAoInitialize接口设置.整个应用程序中只能有一种方式存在,如果进行了两种License ...
- 获取centos6.5系统信息脚本
最近想尝试做两件比较重要的事情,第一是用python写个cmdb,第二还是用python写个小型监控系统,下面是获取系统信息的脚本: #!/usr/bin/env python # coding:ut ...