今天用JavaScript实现了对表格列宽进行调整的功能。
想要实现表格内的文字在宽度不足时不会被显示出来,网上有人说在TD里面加DIV,谬也。正确的方法是Table的CSS需要有下面的属性:
table-layout:fixed;
TD的CSS需要有:
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
程序基础的思路就是在TH里加一个DIV,MouseDown时就改变Body的MouseMove事件,再根据Mouse移动的大小来动态改变Table和TD的Width。
在TH中动态添加DIV时,发现只设置text-align:right在FireFox里不能让新的DIV居右显示,这是因为在FF中要设置新生成的DIV左右的Margin才行,代码如下:
var resize=document.createElement("DIV");
resize.style.width=6;
resize.style.height=10;
resize.style.backgroundColor="#F00";
if(!IE)
{
resize.style.marginRight="none";
resize.style.marginLeft="auto";
}
resize.onmousedown=_md;
resize.style.cursor="col-resize";
this.ths[i].style.textAlign="right";
this.ths[i].appendChild(resize);
注意非IE里需要设置的部分。
在改变Body的MouseMove事件时,用到了我写的别一个BodyEventsManager类,原因是如果真的在一个项目中,可能原来Body就已经定义了MouseMove方法,如果直接覆盖就恢复不了啦。在BodyEventsManager中有一个Stack,可以把原有的方法保留住,这样就算是多次改写,只要代码中注意用BodyEventsManager.pop("onmousemove")进行还原,程序是不会出问题的。
附件中的页面可以看到最后实现的效果,在IE和FireFox下通过测试。
分享到:
相关推荐
NULL 博文链接:https://yangqianyu222.iteye.com/blog/435110
ListView 自动调整列宽ListView 自动调整列宽
易语言高级表格自动调整列宽源码,高级表格自动调整列宽
易语言源码高级表格自动调整列宽例程.rar 易语言源码高级表格自动调整列宽例程.rar 易语言源码高级表格自动调整列宽例程.rar 易语言源码高级表格自动调整列宽例程.rar 易语言源码高级表格自动调整列宽例程.rar ...
完整版高级表格自动调整列宽例程.rar
易语言高级表格自动调整列宽源码。@易语言代码编写例子。
一个jquery插件,可以方便地将html中的table实现为可以手动拖动并调整列宽。使用方法简单,例$("#tb").ZTable();
WEB生成的table列宽度固定,单元格内容不换行,内容超过列宽时隐藏,列的宽度可以拖动列来调整,最后一列根据table的宽度自适应.可一通过参数设置列是否允许调整宽度.
易语言自动调整列宽,超级列表框列宽自动调整
一些表格常用的功能,拖拽改变尺寸,点击排序,鼠标滑过变色等功能
js调整表格列宽插件
NULL 博文链接:https://yangqianyu222.iteye.com/blog/437235
易语言源码易语言高级表格自动调整列宽源码.rar 易语言源码易语言高级表格自动调整列宽源码.rar 易语言源码易语言高级表格自动调整列宽源码.rar 易语言源码易语言高级表格自动调整列宽源码.rar 易语言源码易语言...
js自定义表格(只适用IE) 支持以下功能: 调整列宽 表格记录排序 各种数据校验 添加行和删除行 单元格回车跳转
这是我自己编写的,绝对能用,可以使Excel表格自动设置居中、自动调整列宽和合并单元格,根据自己需求稍修改下,需要的朋友可以用下
完整版高级表格自动调整列宽例程.e.rar