任意表格(table)实现拖动列(column)改变列大小
直接上代码吧,原理可以看我上一篇博文。本实现基于jquery,完美实现拖动改变表格的列大小功能,只需将代码放置在你页面的底部即可(jquery必须先引入)。
$(function () {
var isMouseDown = false;
var currentTh = null;
$('table th').bind({
mousedown:function (e) {
var $th = $(this);
var left = $th.offset().left; //元素距左
var rightPos = left + $th.outerWidth();
if (rightPos-4<= e.pageX && e.pageX <= rightPos) {
isMouseDown = true;
currentTh = $th;
$('table th').css('cursor','ew-resize');
//创建遮罩层,防止mouseup事件被其它元素阻止冒泡,导致mouseup事件无法被body捕获,导致拖动不能停止
var bodyWidth = $('body').width();
var bodyHeight = $('body').height();
$('body').append('<div id="mask" style="opacity:0;top:0px;left:0px;cursor:ew-resize;background-color:green;position:absolute;z-index:9999;width:'+bodyWidth+'px;height:'+bodyHeight+'px;"></div>');
}
}
});
$('body').bind({
mousemove:function(e) {
//移动到column右边缘提示
$('table th').each(function (index,eleDom) {
var ele = $(eleDom);
var left = ele.offset().left; //元素距左
var rightPos = left + ele.outerWidth();
if (rightPos-4<= e.pageX && e.pageX <= rightPos) { //移到列右边缘
ele.css('cursor','ew-resize');
}else{
if(!isMouseDown){ //不是鼠标按下的时候取消特殊鼠标样式
ele.css("cursor","auto");
}
}
});
//改变大小
if(currentTh != null){
if(isMouseDown){ //鼠标按下了,开始移动
var left = currentTh.offset().left;
var paddingBorderLen = currentTh.outerWidth()-currentTh.width();
currentTh.width((e.pageX-left-paddingBorderLen)+'px');
}
}
},
mouseup:function (e) {
isMouseDown = false;
currentTh = null;
$('table th').css('cursor','auto');
$('#mask').remove();
}
});
});
本插件可能要修改的地方
1.遮罩层的id,mask可能和你的某些元素冲突,建议换成其它的
2.遮罩层的z-index可能不够大,当你拖动停不下来的时候,把z-index提高,最大值为2147483647
任意表格(table)实现拖动列(column)改变列大小的更多相关文章
- jQuery 选择表格(table)里的行和列及改变简单样式
本文只是介绍如何用jQuery语句对表格中行和列进行选择以及一些简单样式改变,希望它可以对jQuery表格处理的深层学习提供一些帮助jQuery对表格(table)的处理提供了相当强大的功能,比如说对 ...
- display:table标签来自动改变列宽 改变的同时table的整体宽度跟随变化
发现公司里的所有分页功能都是通过display:talbe来实现的,但是用户最近说要让表格列宽可以拖动:所有我就寻找了好多的办法:网上找了很多的资料,但是都不是我要的效果因为他们都是列宽不改变要不就是 ...
- jquery可拖动表格调整列格子的宽度大小(转)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- ORA-01747: user.table.column, table.column 或列说明无效
Oracle.DataAccess.Client.OracleException ORA-01747: user.table.column, table.column 或列说明无效 原因1: 查了一下 ...
- jQuery动态对表格Table进行添加或删除行以及修改列值操作
jQuery,不仅可以以少量的代码做很多操作,而且兼容性好(各种浏览器,各种版本). 下面用jQuery动态对表格Table进行添加或删除行以及修改列值操作 1.jQuery代码 <script ...
- user.table.column, table.column 或列说明无效
Oracle统计采用别名出错(user.table.column, table.column 或列说明无效) >>>>>>>>>>>& ...
- 关于“ORA-01747: user.table.column, table.column 或列说明无效”的报错。
今天在工程中遇到“ORA-01747: user.table.column, table.column 或列说明无效”的报错情况,查了一下是由于数据库列名起的不好引起的,名字用到了数据库的关键字.
- “ORA-01747: user.table.column, table.column 或列说明无效” 的解决方案
此问题的原因是因为表的列名称使用了Oracle声明的关键字,列名起的不好引起的. 如果列很多,又不好确定是哪个列名使用了关键字,以下建议可供参考: select * from v$reserved_w ...
- #Java Web累积#表格<table>中隐藏列做备用数据
初入JW,MyEclipse,JS文件中码砖时怎么连个提示都没有. 步骤1 JSP代码中,Table多出一列,如下列代码中的 Other,其中css文件中将col00的width设置为0px; < ...
随机推荐
- SP2666 QTREE4 - Query on a tree IV(LCT)
题意翻译 你被给定一棵n个点的带边权的树(边权可以为负),点从1到n编号.每个点可能有两种颜色:黑或白.我们定义dist(a,b)为点a至点b路径上的权值之和. 一开始所有的点都是白色的. 要求作以下 ...
- 利用Crawlspider爬取腾讯招聘数据(全站,深度)
需求: 使用crawlSpider(全站)进行数据爬取 - 首页: 岗位名称,岗位类别 - 详情页:岗位职责 - 持久化存储 代码: 爬虫文件: from scrapy.linkextractors ...
- [ActionScript 3.0] 翻牌效果,运用语法rotationY,PerspectiveProjection
package { import com.tweener.transitions.Tweener; import flash.display.Bitmap; import flash.display. ...
- Tomcat入门级小白教程
Tomcat 类似与一个apache的扩展型,属于apache软件基金会的核心项目,属于开源的轻量级Web应用服务器,是开发和调试JSP程序的首选,主要针对Jave语言开发的网页代码进行解析,Tomc ...
- java web 工程创建及servlet简单使用
1.java web工程创建 (1)File--->new--->project (2)选择java enterprise,按照下图操作 (3)点击next后,会进入如下界面,修改工程名后 ...
- python全栈开发_day4_if,while和for
一.if 1)if的用途 if常用于判断. 2)if的语法 tag=True tag2=True if tag: print("代码") elif tag2: print(&quo ...
- [短期持续更新]Codeforces 构造题一览
说实话我觉得做这种题很没意思(不够硬核), 可是人有短板终究是要补的...起码这种类型补起来相对简单 所以还是把先前准备好的专题放下吧,做点实现上比较休闲的题 ps.为了精简篇幅,代码全部丢到ubun ...
- Laravel 控制器 Controller 传值到 视图 View 的几种方法总结
单个值的传递 with public function index() { $test = "测试"; return view('test.index')->with(' ...
- mojing手柄遥杆控制
using UnityEngine; using UnityEngine.UI; using System.Collections; using MojingSample.CrossPlatformI ...
- Delphi 统计Word文档中的字数
急待解决的问题就是如何用delphi实现word中的统计字数 另外想多了解一些关于操作word的相关内容 比如用ole动态创建的和TWordApplication的偏重点在哪里,有什么不同等等…… 用 ...