jQuery表格列宽可拖拽改变且兼容firfox_jquery

本demo使用jQuery包,实现表格列宽可拖拽功能,并实现页面reset时的重新布局。使用jQuery,方便函数的调用,给要处理的表格添加id 后,直接调用$("#id").movedTh()即可方便实现,修改了firfox的兼容性。

代码如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<mce:script type="text/javascript" src="jquery-1.3.2.min.js" mce_src="jquery-1.3.2.min.js"></mce:script>
<mce:style><!--
.resizeDivClass
{
position:absolute;
background-color:gray;
width:2px;
height:15px;
z-index:1px;
display: block;
cursor:e-resize
}
.td1 {
font-size: 12px;
white-space:nowrap;
color:#0000ff;
}
--></mce:style><style mce_bogus="1">.resizeDivClass
{
position:absolute;
background-color:gray;
width:2px;
height:15px;
z-index:1px;
display: block;
cursor:e-resize
}
.td1 {
font-size: 12px;
white-space:nowrap;
color:#0000ff;
}</style>
<mce:script language=javascript><!--
/*
标题:扩拖拽列表格demo 1.2
设计:卢松强
博客:http://hi.csdn.net/andensy
日期:2010年4月26日
说明:修改了firfox兼容性问题,可以很好的兼容火狐浏览器
*/
/*
依赖于jQuery
*/
(function($){
//用正则表达式判断jQuery的版本
if (/1/.(0|1|2)/.(0|1|2|3|4|5)/.test($.fn.jquery) || /^1.1/.test($.fn.jquery)) {
alert('movedTh 需要 jQuery v1.2.6 以后版本支持! 你正使用的是 v' + $.fn.jquery);
return;
}
me=null;
var ps=3;
$.fn.movedTh=function(){
me=this;
var target = null;
var tempStr = "";
var i=0;
$(me).find("tr:first").find("th").each(function(){
tempStr = '<div id="mydiv'+i+'"onmousedown="$().mousedone.movedown(event,this)" ></div>';
var div={};
$(this).html($(this).html()+tempStr);
var offset = $(this).offset();
var pos=offset.left +$(this).width()+ me.offset().left-ps;
$("#mydiv"+i).addClass("resizeDivClass");
$("#mydiv"+i).css("left",pos);
$("#mydiv"+i).css("top",(offset.top+2));
i++;
}); //end each
} //end moveTh
$.fn.mousedone={
movedown:function(e,obj){
var d=document;
var e = window.event||e ;
var myX = e.clientX||e.pageX;
obj.mouseDownX=myX ;
obj.pareneTdW=$(obj).parent().width(); //obj.parentElement.offsetWidth;
obj.pareneTableW=me.width();
if(obj.setCapture){
obj.setCapture();
}else if(window.captureEvents){
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
}
d.onmousemove=function(e){
var dragData=obj;
var event = window.event||e ;
if(!dragData.mouseDownX) return false;
var newWidth=dragData.pareneTdW*1+(event.clientX||event.pageX)*1-dragData.mouseDownX;
if(newWidth>0)
{
$(obj).parent().width(newWidth);
me.width(dragData.pareneTableW*1+(event.clientX||event.pageX)*1-dragData.mouseDownX);
var k=0;
me.find("tr:first").find("th").each(function(){
var offset = $(this).offset();
var pos=offset.left*1+$(this).width()*1+me.offset().left*1-ps;
$("#mydiv"+k).css("left",pos);
k++;
}) //end each
}//end if
};
d.onmouseup=function(e){
var dragData=obj;
if(dragData.setCapture)
{
dragData.releaseCapture();
}else if(window.captureEvents){
     window.releaseEvents(e.MOUSEMOVE|e.MOUSEUP);
}
dragData.mouseDownX=0;
}
}
} //end mousedone
$(window).resize(function(){
setTimeout(function() {
var target = null;
var tempStr = "";
var i=0;
$(me).find("tr:first").find("th").each(function(){
tempStr = '<div id="mydiv'+i+'"onmousedown="$().mousedone.movedown(event,this)" ></div>';
var div={};
$(this).html($(this).html()+tempStr);
var offset = $(this).offset();
var pos=offset.left +$(this).width()+ me.offset().left-ps;
$("#mydiv"+i).addClass("resizeDivClass");
$("#mydiv"+i).css("left",pos);
i++;
}); //end each
}, 10);
});
})(jQuery)
$().ready(function(){
$("#tab").movedTh();
})
// --></mce:script>
</head>
<body onload="">
<table cellpadding="3" id='' STYLE="table-layout:fixed;" mce_STYLE="table-layout:fixed;" >
<tr bgcolor=cccccc >
<th valign=top class="td1" ><nobr>改变table的列宽度改</nobr><span style="color:#069" mce_style="color:#069">|</span></th>
<th valign=top class="td1" ><nobr>改变table的列宽度改</nobr><span style="color:#069" mce_style="color:#069">|</span></th>
</tr></table>
<br>
<table cellpadding="3" id='tab' STYLE="table-layout:fixed;" mce_STYLE="table-layout:fixed;" >
<tr bgcolor=cccccc >
<th valign=top class="td1" ><nobr>改变table的列宽度改</nobr></th>
<th valign=top class="td1" ><nobr>改变table的列宽度改</nobr></th>
<th valign=top class="td1" ><nobr>改变table的列宽度改</nobr></th>
<th valign=top class="td1" ><nobr>改变table的列宽度改</nobr></th>
<th valign=top class="td1" ><nobr>改变table的列宽度改</nobr></th>
<th valign=top class="td1" ><nobr>改变table的列宽度改</nobr></th>
</tr>
<tr>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
</tr>
<tr>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
</tr>
<tr>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
</tr>
<tr>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
<td class="td1"><nobr>改变table的列宽度</nobr></td>
</tr>
</table>
</body>
</html>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索表格列宽
jquery table列宽拖拽、datatables 列宽拖拽、jquery 拖动列宽插件、jquery datatable列宽、jquery 表格拖动列宽,以便于您获取更多的相关知识。

时间: 2024-09-02 07:10:15

jQuery表格列宽可拖拽改变且兼容firfox_jquery的相关文章

重写datagrid(禁止对列宽进行拖拽)

datagrid Public Class notCResizegrid     Inherits System.Windows.Forms.DataGrid   #Region " Windows 窗体设计器生成的代码 "       Public Sub New()         MyBase.New()           '该调用是 Windows 窗体设计器所必需的.         InitializeComponent()           '在 Initialize

JQuery拖动表头边框线调整表格列宽效果代码_jquery

类似于桌面程序中的表格拖动表头的效果,当鼠标停留在表头边框线上时,鼠标会变成表示左右拖动的形状,接着拖动鼠标,会在表格中出现一条随鼠标移动的竖线,最后放开鼠标,表格列宽会被调整.最近比较空闲,便自己动手尝试实现,在此分享下小小的成果. 首先需要如图所示的鼠标图标文件,在自己的硬盘中搜索*.cur,肯定能找到. 为了能在所有需要该效果的页面使用,并且不需要更改页面任何HTML,我把所有的代码整合在 $(document).ready(function() {}); 中,并写入一个独立的JS文件.

jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)_jquery

本文实例讲述了jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法.分享给大家供大家参考,具体如下: 该插件是文章作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现目前较为流行的拖拽改变元素大小的效果,您可以根据自己的实际需求来设置被拖拽元素的最小宽高和最大宽高.整体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E

利用JavaScript实现拖拽改变元素大小_javascript技巧

大致介绍 拖拽改变元素大小是在模拟拖拽上增加了一些功能 拖拽改变元素大小原理 首先这个方块得知道我们想要改变这个它的大小,所以我给它设定一个范围,当点击这个范围时表明我们想要改变它的大小 当我们点击方块的这些红色区域时,方快就知道我们想要改变它的大小 代码实现: // 获取event对象,兼容性写法 var ev = ev || event; // 鼠标按下时的位置 var mouseDownX = ev.clientX; var mouseDownY = ev.clientY; // 方块上下

表格列宽鼠标拖动

/****************************************** * 没有版权 任意修改 改好了请发给我一份 O(∩_∩)O * Email: * QQ:52524611 *******************************************/ 功能:1)鼠标拖动列宽.2)双击恢复列宽 <HTML> <HEAD> <TITLE>表格列宽鼠标拖动</TITLE> <META content="text/ht

调整Word文档中表格列宽的方法

调整Word文档中表格列宽的方法          1.选择需要调整的列,在"表格工具-布局"选项卡下"单元格大小"组的"表格列宽"微调框中输入数字,按"Enter"键确认输入后,该列单元格的宽度即会调整为输入值,如图1所示. 图1 调整整列单元格的列宽 2.将鼠标指针放置到需要单独调整列宽的单元格左边框上,当鼠标指针变为 形状时单击.然后将鼠标指针移动到该单元格右边框上,当指针变为 形状时拖动边框,即可只调整该单元格的宽度,

Javascript基于jQuery UI实现选中区域拖拽效果_javascript技巧

一.效果展示 普通的三个div 鼠标拖动选中效果 选中所有的div 这样貌似看不出效果,没关系,我们有神奇的gif动画,来一个整体的动画效果感受下. 二.代码实现 整个代码其实也不难,需要用到一个博主自己封装的js文件. AreaSelect.js 考虑到代码量有点大,并且知乎没有代码折叠功能,所以这里就留一个文件名.等博主抽时间将它开源到github上面去,当然,有需要的朋友也可以直接联系博主,博主免费提供! 引入这个js后,还需要引用jquery和jquery UI相关文件. <script

jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法_jquery

本文实例讲述了jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法.分享给大家供大家参考.具体如下: 左右拖拽切换对比图片效果,运行效果后,图片中间有个拖动条,拖动左右滑动,可看到图片不一样的效果,女模特的脸变嫩了,呵呵,其实是用了两张背景图片实现的,这就需要jquery.beforeafter.js插件了,拖动时候的小图标不见了,路径可以在jquery.beforeafter.js中设置,不多说了. 运行效果截图如下: 在线演示地址如下: http://d

jquery实现简单的拖拽效果实例兼容所有主流浏览器

js代码:fun.js 复制代码 代码如下: _MoveObj = null;//全部变量,用来表示当前div z_index = 0;//z方向 jQuery.fn.myDrag=function(){ _IsMove = 0; //是否移动 1.移动 _MouseLeft = 0; //div left坐标 _MouseTop = 0; //div top坐标 $(document).bind("mousemove",function(e){ if(_IsMove==1){ $(_