在数据表格中,有时候需要拖动表格宽度,查看完整的数据,是很常用的功能。

1 效果

可以用纯JS就可以实现,如下,是正常情况下的表格:

拖动表格标题中间线,拖动后效果如下:

查看DEMO

2 代码

HTML代码:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>演示</title>
 5     <script type="text/javascript" src="tabSize.js"></script>
 6     <script type="text/javascript">
 7         window.onload = function() {
 8             tabSize.init('resizeTable');
 9         };
10     </script>
11     <style>
12         .resizeBox{overflow-x: auto; width: 500px;}
13         table{width: 100%;border: 1px solid #000;border-collapse:collapse;}
14         th{background: #ccc;}
15         th, td{border: 1px solid #000;}
16     </style>
17 </head>
18 <body>
19 <div class="resizeBox">
20     <table id="resizeTable">
21         <thead>
22         <tr><th>标题1</th><th>标题2</th><th>标题3</th></tr>
23         </thead>
24         <tbody>
25         <tr><td>第1行</td><td>第1行</td><td>第1行</td></tr>
26         <tr><td>第2行</td><td>第2行</td><td>第1行</td></tr>
27         <tr><td>第3行</td><td>第3行</td><td>第1行</td></tr>
28         </tbody>
29     </table>
30 </div>
31 </body>
32 </html>

JS代码:

 1 /**
 2  * Created by ywj on 2017/10/24.
 3  */
 4 "use strict";
 5 var tabSize = tabSize || {};
 6 tabSize.init = function (id) {
 7     var i,
 8         self,
 9         table = document.getElementById(id),
10         header = table.rows[0],
11         tableX = header.clientWidth,
12         length = header.cells.length;
13
14     for (i = 0; i < length; i++) {
15         header.cells[i].onmousedown = function () {
16             self = this;
17             if (event.offsetX > self.offsetWidth - 10) {
18                 self.mouseDown = true;
19                 self.oldX = event.x;
20                 self.oldWidth = self.offsetWidth;
21             }
22         };
23         header.cells[i].onmousemove = function () {
24             if (event.offsetX > this.offsetWidth - 10) {
25                 this.style.cursor = 'col-resize';
26             } else {
27                 this.style.cursor = 'default';
28             }
29             if (self == undefined) {
30                 self = this;
31             }
32             if (self.mouseDown != null && self.mouseDown == true) {
33                 self.style.cursor = 'default';
34                 if (self.oldWidth + (event.x - self.oldX) > 0) {
35                     self.width = self.oldWidth + (event.x - self.oldX);
36                 }
37                 self.style.width = self.width;
38                 table.style.width = tableX + (event.x - self.oldX) + 'px';
39                 self.style.cursor = 'col-resize';
40             }
41         };
42         table.onmouseup = function () {
43             if (self == undefined) {
44                 self = this;
45             }
46             self.mouseDown = false;
47             self.style.cursor = 'default';
48             tableX = header.clientWidth;
49         };
50     }
51 };

转载于:https://www.cnblogs.com/yuwenjing0727/p/7723739.html

JS实现表格列宽拖动相关推荐

  1. php表格列宽拖拽,JavaScript_JQuery拖动表头边框线调整表格列宽效果代码,类似于桌面程序中的表格拖动 - phpStudy...

    JQuery拖动表头边框线调整表格列宽效果代码 类似于桌面程序中的表格拖动表头的效果,当鼠标停留在表头边框线上时,鼠标会变成表示左右拖动的形状,接着拖动鼠标,会在表格中出现一条随鼠标移动的竖线,最后放 ...

  2. 【java基础知识】设置表格内容居中显示,表格字体大小调整,表格列宽调整

    一.表格内容居中显示 通过Netbeans创建表格后,默认表头和表格内容全部偏左显示,想要手动修改,需要先将自动创建的表格类改为public类型. 然后在表格代码部分后面添加下面代码: 1.表头居中显 ...

  3. 计算机表格列宽怎么设置,表格列宽怎么设置厘米

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 以Excel为例,表格列宽设置厘米的操作方法如下: 1.打开表格,将鼠标放在一列的表头,单击右键,在弹出的标签里选择列宽: 2.点 ...

  4. JAVA使用POI-TL生成word表格列宽自定义

    上篇文章介绍了如何使用POI-TL对生成的表格进行列宽自适应和表格内容居中.使用poi-tl组件根据模板生成word文件(解决表格列宽自适应问题) 今天又接到一个需求,如何自定义表格的列宽? 研究了P ...

  5. table表格列宽动态调整方案

    在做表格的时候,设置好的列宽却因为数据太长导致换行,想让它自己调整宽度,但是现在elementUI组件好像还没有这个功能.所以自己写了一个方法实现它. 一个动态改变表格列宽的方法 该方法实现了自适应列 ...

  6. word表格列宽如何设置?

    word虽然大部分都是用来做内容编辑,但实际上也有表格功能哦!插入表格并不难,那么word表格列宽如何设置?方法简单易懂,大家动动手学起来! 步骤1.我们从头到尾说一次吧!先打开一个word文档: 步 ...

  7. Typora 使用技巧2 -- 强制换行,修改表格列宽

    强制换行 将光标定位于想要换行的位置,按 Ctrl + Enter 例如,在想两个已编辑好的代码块间插入空行 插入空行前 插入空行后 修改表格列宽 在表头输入足够的空格即可(若居中对齐,则在左侧和右侧 ...

  8. java制作九行九列表格_将文中后9行文字转换成一个9行4列的表格,设置表格居中,表格列宽为2.5厘米..._考试资料网...

    问答题在考生文件夹下打开文档word.docx,按照要求完成下列操作并以该文件名(word.docx)保存文档. [文档开始] 2009年北平市中考招生计划低于10万人 晨报讯伴随初中毕业生人数连年下 ...

  9. Safari浏览器下colgroup失效导致表格列宽均分

    Safari浏览器下colgroup失效导致表格列宽均分 表现 原因 解决 表现 使用原生tabel标签写表格,由于需要对表头做特殊处理,所以采用两个表格组装的方式写,表头也是用单独的table标签写 ...

最新文章

  1. asp页面和Asp.net页面传中文参数UrlEncode编码以及接收解码
  2. 逆向而行—ASP的O/R MAPPING 使用解释
  3. 【linux练习】基础作业一
  4. Linux系统详解 系统的启动、登录、注销与开关机
  5. java在线聊天项目0.4版本 制作服务端接收连接,客户端连接功能 新增客户端窗口打开时光标指向下边文本域功能,使用WindowListener监听WindowAdapter...
  6. 【cocos2d-x 仙凡奇缘-网游研发(2) 角色换线系统】
  7. Linux基础:Shell脚本学习
  8. 【渝粤教育】国家开放大学2018年秋季 2322T物流信息技术 参考试题
  9. WEB-INF下jsp页面如何访问
  10. 传输层学习之五(TCP的SACK,F-RTO)
  11. python 函数对象(函数式编程 lambda、map、filter、reduce)、闭包(closure)
  12. Java编程判断一组学生成绩等级
  13. Python pdf 转jpg/png工具
  14. java od_OD使用教程
  15. Python 中 jieba 库
  16. 计算机网络知识竞赛没有分数,计算机网络知识竞赛.ppt
  17. 初学单片机,该如何选择单片机开发板?
  18. 使用UltraISO刻录自己的音乐CD步骤
  19. ASAN中无崩溃测试方案实现
  20. 大作都是怎么诞生的,游戏开发全过程揭秘 !零基础小白入门须知

热门文章

  1. Linux常用基本命令[cp]
  2. 向李开复和四中校长提问:AI时代来临,孩子的教育需要什么改变?
  3. MySQL 复制 主键冲突
  4. 天天说架构师,到底什么样的程序员能称为架构师?
  5. stackoverflow国内被墙的打开办法
  6. linux 用户管理(3)----查看用户登录时间以及命令历史
  7. Dockerfile实践优化建议
  8. gmock学习02---编写自己的Matcher与如何让编译器识别被mock的重载函数
  9. 光热发电未来或成长为南非电力供应市场的主力军
  10. 使用模板元编程快速的得到斐波那契数。。