使表格的标题列可左右拉伸jquery插件封装_jquery

插件名称命名为:jquery.tableresize.js,代码如下:

复制代码 代码如下:

/*
Writen by mlcactus, 2014-11-24
这是我封装的一个jquery插件,能够使table的各列可以左右拉伸,从而使宽度变小或变大
用法:
单个table:$("#table_id").tableresize();   
页面所有table:$("table").tableresize();
*/
(function ($) {
    $.fn.tableresize = function () {
        var _document = $("body");
        $(this).each(function () {
            if (!$.tableresize) {
                $.tableresize = {};
            }
            var _table = $(this);
            //设定ID
            var id = _table.attr("id") || "tableresize_" + (Math.random() * 100000).toFixed(0).toString();
            var tr = _table.find("tr").first(), ths = tr.children(), _firstth = ths.first();
            //设定临时变量存放对象
            var cobjs = $.tableresize[id] = {};
            cobjs._currentObj = null, cobjs._currentLeft = null;
            ths.mousemove(function (e) {
                var _this = $(this);
                var left = _this.offset().left, top = _this.offset().top, width = _this.width(), height = _this.height(), right = left + width, bottom = top + height, clientX = e.clientX, clientY = e.clientY;
                var leftside = !_firstth.is(_this) && Math.abs(left - clientX) <= 5, rightside = Math.abs(right - clientX) <= 5;
                if (cobjs._currentLeft || clientY > top && clientY < bottom && (leftside || rightside)) {
                    _document.css("cursor", "e-resize");
                    if (!cobjs._currentLeft) {
                        if (leftside) {
                            cobjs._currentObj = _this.prev();
                        }
                        else {
                            cobjs._currentObj = _this;
                        }
                    }
                }
                else {
                    cobjs._currentObj = null;
                }
            });
            ths.mouseout(function (e) {
                if (!cobjs._currentLeft) {
                    cobjs._currentObj = null;
                    _document.css("cursor", "auto");
                }
            });
            _document.mousedown(function (e) {
                if (cobjs._currentObj) {
                    cobjs._currentLeft = e.clientX;
                }
                else {
                    cobjs._currentLeft = null;
                }
            });
            _document.mouseup(function (e) {
                if (cobjs._currentLeft) {
                    cobjs._currentObj.width(cobjs._currentObj.width() + (e.clientX - cobjs._currentLeft));
                }
                cobjs._currentObj = null;
                cobjs._currentLeft = null;
                _document.css("cursor", "auto");
            });
        });
    };
})(jQuery);  

页面代码为:

复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css" >
        td{ text-align:center;}
    </style>
    <script type="text/javascript" src="script/jquery-1.10.2.js"></script>
    <script type="text/javascript" src="script/jquery.tableresize.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            //使两张table同时支持左右拉伸
            $("table").tableresize();
        });
    </script>
</head>
<body>
    表格1<br/>
    <table cellspacing="0" border="1" style="border-collapse:collapse;" rules="all">
        <tbody><tr>
            <td style="width:200px;">ID</td><td style="width:200px;">名字</td><td style="width:200px;">年纪</td><td style="width:200px;">地址</td><td style="width:200px;">电话</td>
        </tr><tr>
            <td>22</td><td>Name:44</td><td>Age:23</td><td>Address:47</td><td>Phone:15</td>
        </tr><tr>
            <td>28</td><td>Name:42</td><td>Age:68</td><td>Address:30</td><td>Phone:50</td>
        </tr><tr>
            <td>29</td><td>Name:63</td><td>Age:48</td><td>Address:90</td><td>Phone:76</td>
        </tr>
    </tbody>
    </table>
    <br/>表格2<br/>
    <table cellspacing="0" border="1" style="border-collapse:collapse;" rules="all">
        <tbody><tr>
            <td style="width:200px;">ID</td><td style="width:200px;">名字</td><td style="width:200px;">年纪</td><td style="width:200px;">地址</td><td style="width:200px;">电话</td>
        </tr><tr>
            <td>22</td><td>Name:44</td><td>Age:23</td><td>Address:47</td><td>Phone:15</td>
        </tr><tr>
            <td>28</td><td>Name:42</td><td>Age:68</td><td>Address:30</td><td>Phone:50</td>
        </tr>
    </tbody></table>
</body>
</html>

时间: 2024-11-05 04:52:09

使表格的标题列可左右拉伸jquery插件封装_jquery的相关文章

通过技巧固定表格的标题列的代码

技巧 <html><head> <style>table#headers {table-layout:fixed;background:#eea033;}table#data {table-layout:relative;background:#eea033;}td, th {vertical-align:top;background:#ffffff;}</style><script language="javascript">

JQuery表格拖动调整列宽效果(自己动手写的)_jquery

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

ASP如何固定表格的标题行和标题列

网上有许关于固定表格的标题行的文章,但是既要固定标题行又要固定标题列的却几乎没有.现我写下如下代码以供大家参考:   <html>   <head>   <title>Untitled Document</title>   <meta http-equiv="Content-Type" content="text/html; charset=gb2312">   </head>   <sc

如何固定表格的标题行和标题列

网上有许关于固定表格的标题行的文章,但是既要固定标题行又要固定标题列的却几乎没有.现我写下如下代码以供大家参考: <html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><script>function

Excel表格设置标题跨列居中动画教程

<Excel2003入门动画教程15.Excel表格设置标题跨列居中>. 演示动画 操作步骤 对于Excel表格的标题,我们总是让其位于整个工作表的中间,对于这一居中的结果,我们通常是用"合并及居中"功能来实现的.这样以来,就破坏了整个工作表的二维结构,以后使用函数.排序等操作时带来一些不必要的麻烦. 为了解决这个问题,我们可以用"跨列居中"的对齐方式来实现这一效果:先将标题字符输入到工作表最左列的单元格中,并设置好字体.字号等,然后同时选中用于显示标题

jQuery+Ajax实现表格数据不同列标题排序(为表格注入活力)_AJAX相关

表格大家都十分熟悉,如今的CSS也使得表格的布局越来越光彩耀人.但是,无论如何,都掩饰不了那些包装下的死板. 那么如何让那些死板的数据 更具有可读性.可用性,能够让我们那些数据在"动"呢? 下面我们使用jquery+ajax 来为表格注入些活力.主要实现的目的就是:将表格的列标题转化为按钮,点击不同的列标题,便按相应的列对数据进行排序.比如学生信息表,我点击"生日"列,这张表便按生日排序将结果呈现在我们面前.使用ajax来调用本页也避免了刷新页面所带来的折磨. 下面

jQuery+Ajax实现表格数据不同列标题排序(为表格注入活力)

表格大家都十分熟悉,如今的CSS也使得表格的布局越来越光彩耀人.但是,无论如何,都掩饰不了那些包装下的死板. 那么如何让那些死板的数据 更具有可读性.可用性,能够让我们那些数据在"动"呢? 下面我们使用jquery+ajax 来为表格注入些活力.主要实现的目的就是:将表格的列标题转化为按钮,点击不同的列标题,便按相应的列对数据进行排序.比如学生信息表,我点击"生日"列,这张表便按生日排序将结果呈现在我们面前.使用ajax来调用本页也避免了刷新页面所带来的折磨. 下面

使用Excel2007自动添加表格字段标题功能

Excel 2007中有自动添加表格字段标题的功能.当我们在Excel2007中进行表格数据的输入时,如果给表格套用了表格样式,只要在表格右侧的空白单元格里输入数据,Excel2007会自动添加新的字段标题,并自动辨别和套用适当的名称与格式.你只需专注后续重要数据的输入,而不必花费任何心思在表格的格式设定与外观的操作上,非常方便. 图示: 自动添加字段标题 下面我们一起来看看怎样具体使用Excel 2007自动添加表格字段标题这个功能. 先随意制作一个简单的表格(如图). 图示:制作表格 框选表

Excel 如何自动添加表格字段标题

  我们都知道,Excel 2007比之前的版本来说,都强大很多,很多实用的功能,可能很多小伙伴们都不知道怎么使用,在Excel 2007中可以自动添加表格字段标题的功能,很神奇吧,我们一起来看看怎么进行设置. 当我们在Excel2007中进行表格数据的输入时,如果给表格套用了表格样式,只要在表格右侧的空白单元格里输入数据,Excel2007会自动添加新的字段标题,并自动辨别和套用适当的名称与格式.你只需专注后续重要数据的输入,而不必花费任何心思在表格的格式设定与外观的操作上,非常方便. 自动添