JGUI源码:DataTable固定列样式(20)
本来感觉这个固定列很容易实现的,一般都是几个table组合实现,真正自己从头做的时候,发现有很多坑,本文只是固定列原理,真正实现datatable的话,代码量比较大的,后续再进行完善。
使用左中右三个datatable实现显示
|left|center|right|
left和right是固定列,效果如下
实现原理:
(1)左右div使用posion:absolute固定
(2)center区域div使用overflow:scroll显示
(3)设置line-height,这个属性很重要,不然的话三个datatable最小td高度不一样会导致总高度错开。
(4)后续需要完善:根据left,right宽度js计算center区域的left,right.

<style>
#mydatatable {
width: 400px;
height: 600px;
position: relative;
line-height: 30px;
}
.jgui-datatable .tableleft {
position: absolute;
left: 0px;
top: 0px;
bottom: 0px;
background: #eee;
z-index: 1000;
}
.jgui-datatable .tableright {
position: absolute;
right: 0px;
top: 0px;
bottom: 0px;
background: #eee;
z-index: 1000;
}
.jgui-datatable .tablebody {
position: absolute;
right: 50px;
left: 100px;
top: 0px;
z-index: 50;
overflow: scroll;
}
.jgui-datatable th {
min-width: 50px;
text-align: center; }
.jgui-datatable td {
text-align: center;
}
</style>
</head>
<body>
<div>这是DataTable固定左右列显示</div>
<div class="jgui-datatable" id="mydatatable">
<div> <div class="tableleft">
<table>
<thead>
<tr>
<th>
<input type="checkbox" />
</th>
<th>
ID
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="checkbox" />
</td>
<td>
001
</td>
</tr>
<tr>
<td>
<input type="checkbox" />
</td>
<td>
001
</td>
</tr>
<tr>
<td>
<input type="checkbox" />
</td>
<td>
001
</td>
</tr>
<tr>
<td>
<input type="checkbox" />
</td>
<td>
001
</td>
</tr>
</tbody>
</table>
</div>
<div class="tablebody">
<table>
<thead>
<tr>
<th>
姓名
</th>
<th>
年龄
</th>
<th>
性别
</th>
<th>
班级
</th>
<th>
语文
</th>
<th>
数学
</th>
<th>
外语
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
张三
</td>
<td>
31
</td>
<td>
男
</td>
<td>
1班
</td>
<td>
91
</td>
<td>
90
</td>
<td>
80
</td>
</tr>
<tr>
<td>
张三
</td>
<td>
31
</td>
<td>
男
</td>
<td>
1班
</td>
<td>
91
</td>
<td>
90
</td>
<td>
80
</td>
</tr>
<tr>
<td>
张三
</td>
<td>
31
</td>
<td>
男
</td>
<td>
1班
</td>
<td>
91
</td>
<td>
90
</td>
<td>
80
</td>
</tr>
<tr>
<td>
张三
</td>
<td>
31
</td>
<td>
男
</td>
<td>
1班
</td>
<td>
91
</td>
<td>
90
</td>
<td>
80
</td>
</tr>
</tbody>
</table>
</div>
<div class="tableright">
<table>
<thead>
<tr>
<th>
总分
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
261
</td>
</tr>
<tr>
<td>
261
</td>
</tr>
<tr>
<td>
261
</td>
</tr>
<tr>
<td>
261
</td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
JGUI源码:DataTable固定列样式(20)的更多相关文章
- JGUI源码:鼠标中键滚动再次优化(5)
//电脑端中键滚动事件 var mousewheel = getBrowserInfo() == "Firefox" ? "DOMMouseScroll" : ...
- JGUI源码:从头开始,建一个自己的UI框架(1)
开篇 1.JGUI是为了逼迫自己研究底层点的前端技术而做的框架,之前对web底层实现一直没有深入研究,有了技术瓶颈,痛定思痛从头研究, 2.虽然现在vue技术比较火,但还在发展阶段,暂时先使用JQue ...
- JGUI源码:Accordion鼠标中键滚动和手机端滑动实现(2)
本文是抽屉组件在PC端滚动鼠标中键.手机端滑动时,滚动数据列表实现方法,没有使用iscroll等第三方插件,支持火狐,谷歌,IE8+等浏览器. 演示在:www.jgui.com Github地址:ht ...
- jQuery 源码解析(二十七) 样式操作模块 坐标详解
样式操作模块可用于管理DOM元素的样式.坐标和尺寸,本节讲解一下坐标这一块. 对于坐标来说,jQuery提供了一个offset方法用于获取第一个匹配元素的坐标或者设置所有匹配元素的坐标,还有offse ...
- 源码编译安装MySQL8.0.20
1 概述 本文章主要讲述了如何从源码编译安装MySQL社区版8.0.20,首先会介绍一些编译安装的相关知识,然后开始编译安装 2 源码编译安装的相关知识 2.1 make与configure make ...
- netty源码解解析(4.0)-20 ChannelHandler: 自己实现一个自定义协议的服务器和客户端
本章不会直接分析Netty源码,而是通过使用Netty的能力实现一个自定义协议的服务器和客户端.通过这样的实践,可以更深刻地理解Netty的相关代码,同时可以了解,在设计实现自定义协议的过程中需要解决 ...
- 记录一次源码扩展案列——FastJson自定义反序列化ValueMutator
背景:曾经遇到一个很麻烦的事情,就是一个json串中有很多占位符,需要替换成特定文案.如果将json转换成对象后,在一个一个属性去转换的话就出出现很多冗余代码,不美观也不是很实用. 而且也不能提前在j ...
- JGUI源码:右键菜单实现(12)
1.要想实现右键菜单,就要先能响应右键函数 $('#down').mousedown(function(e){ if(3 == e.which){ alert('这是右键单击事件'); }else i ...
- JGUI源码:实现日期控件显示(17)
本文实现一个日期控件显示,日期控件看起来很复杂,其实原理很简单,大部分情况下我们直接使用别人做得好的日期控件就行,但有时候特殊需求,比如显示提醒之类的,恐怕第三方控件就不好实现了, 为了使程序逻辑看起 ...
随机推荐
- 『cURL』curl: (6) Could not resolve host无法解析主机地址
最近在学数据挖掘时,获取数据有两种途径: 开放数据,可以直接使用和存储的数据: 网络数据,通过爬虫或云市场api(付费或免费)获取数据 我通过教程,在阿里云购买一个天气数据api,尝试使用cURL获取 ...
- hbase 预分区与自动分区
我们知道,HBASE在创建表的时候,会自动为表分配一个Region,当一个Region过大达到默认的阈值时(默认10GB大小),HBase中该Region将会进行split,分裂为2个Region,以 ...
- host头注入
看到有说这个题为出题而出题,其实我还是这么觉得, host出问题的话我觉得一般只有在审计代码,看到才知道有host注入 假设不提示host注入,就有难度了 常规的注入了
- 【算法】C语言趣味程序设计编程百例精解
C语言趣味程序设计编程百例精解 C/C++语言经典.实用.趣味程序设计编程百例精解(1) https://wenku.baidu.com/view/b9f683c08bd63186bcebbc3c. ...
- java返回数据工具类
import com.qbskj.project.util.SpringUtils; /** * 消息 * */ public class Message { /** * 类型 */ public e ...
- 解决使用Spring Boot、Multipartfile实现上传提示无法找到文件的问题
前言 SpringBoot使用MultiPartFile接收来自表单的file文件,然后进行服务器的上传是一个项目最基本的需求,我以前的项目都是基于SpringMVC框架搭建的,所以在使用Spring ...
- 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) - 4.28
赛后补了几道 赛中我就写了两个... A - Altruistic AmphibiansGym - 101933A 看了眼榜没几个人做.就没看. 最后发现就是一个DP(但是我觉得复杂度有点迷) 题意: ...
- OpenStack 命令行速查表
OpenStack 命令行速查表 updated: 2017-07-18 08:53 Contents 认证 (keystone) 镜像(glance) 计算 (nova) 实例的暂停.挂起.停止 ...
- P1744 采购特价商品
原题链接 https://www.luogu.org/problemnew/show/P1744 一道最短路的模板题.....很简单吧 求最短路的方法有很多,但是对于刚学完Floyd的我,只会用这个. ...
- vue stylus 格式化问题
IDE是vscode 安装了.vetur插件 由于stylus可以仅用缩进不用写大括号之类的,所以十分方便, 但有个问题,按alt shift F 格式化时,vetur这个插件会默认添加上正常css的 ...