jQuery实现拖动调整表格单元格大小的代码实例


Posted in Javascript onJanuary 13, 2015

jQuery实现的拖动调整表格td单元格的大小:

在实际应用中,可能有这样的需求,那就是需要调整td单元格的大小。
也许是为了便于观察,也许是其他原因,反正这样的需求是有的,下面就分享一段能够实现此功能的代码。

代码实例如下:

<!DOCTYPE html>

<html>

<head>

<meta charset=" utf-8">

<title>三水点靠木</title>

<style type="text/css" >

table {

  border-collapse: collapse;

}

td {

  text-align: center;

}

</style>

<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>

<script type="text/javascript">

(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); 

   

$(document).ready(function () {

  $("table").tableresize();

});

</script>

</head>

<body>

<table cellspacing="0" border="1" 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>

</body>

</html>
Javascript 相关文章推荐
jQuery 研究心得 取得属性的值
Nov 30 Javascript
一个网马的tips实现分析
Nov 28 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
Apr 22 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
Aug 25 Javascript
JS获取select-option-text_value的方法
Dec 26 Javascript
JavaScript递归操作实例浅析
Oct 31 Javascript
jQuery实现鼠标滑过图片移动特效
Dec 08 Javascript
js实现功能比较全面的全选和多选
Mar 02 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 jQuery
layui select动态添加option的实例
Mar 07 Javascript
React组件内事件传参实现tab切换的示例代码
Jul 04 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
Jun 19 Javascript
jQuery trigger()方法用法介绍
Jan 13 #Javascript
修改或扩展jQuery原生方法的代码实例
Jan 13 #Javascript
JQuery.get提交页面不跳转的解决方法
Jan 13 #Javascript
15个jquery常用方法、小技巧分享
Jan 13 #Javascript
js对象基础实例分析
Jan 13 #Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
Jan 13 #Javascript
js使用心得分享
Jan 13 #Javascript
You might like
简单的页面缓冲技术
2006/10/09 PHP
学习php开源项目的源码指南
2014/12/21 PHP
PHP中isset与array_key_exists的区别实例分析
2015/06/02 PHP
PHP文件下载实例代码浅析
2016/08/17 PHP
JavaScript中链式调用之研习
2011/04/07 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
2015/10/13 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
React Native之TextInput组件解析示例
2017/08/22 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
vue中nextTick用法实例
2019/09/11 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
Python的lambda匿名函数的简单介绍
2013/04/25 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
Python 中 Meta Classes详解
2016/02/13 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
Lookfantastic日本官网:英国知名护肤、化妆品和头发护理购物网站
2018/04/21 全球购物
zooplus意大利:在线宠物商店
2019/08/07 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
什么是TCP/IP
2014/07/27 面试题
采购部岗位职责
2013/11/24 职场文书
市场部专员岗位职责
2013/11/30 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
保护环境倡议书范文
2014/05/13 职场文书
新闻人物通讯稿
2014/10/09 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
行政处罚听证告知书
2015/07/01 职场文书
Spring Boot 实现 WebSocket
2022/04/30 Java/Android
Nginx配置使用详解
2022/07/07 Servers