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 相关文章推荐
用javascript实现画板的代码
Sep 05 Javascript
浅谈Javascript嵌套函数及闭包
Nov 09 Javascript
基于jquery的关于动态创建DOM元素的问题
Dec 24 Javascript
JQuery.closest(),parent(),parents()寻找父结点
Feb 17 Javascript
js Dialog 去掉右上角的X关闭功能
Apr 23 Javascript
自己用jQuery写了一个图片的马赛克消失效果
May 04 Javascript
原生js结合html5制作小飞龙的简易跳球
Mar 30 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
Nov 07 Javascript
JavaScript 中 apply 、call 的详解
Mar 21 Javascript
深入理解ES6之数据解构的用法
Jan 13 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
May 03 jQuery
浅谈在vue中使用mint-ui swipe遇到的问题
Sep 27 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
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
php类中private属性继承问题分析
2012/11/01 PHP
php去除html标记的原生函数详解
2015/01/27 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
select组合框option的捕捉实例代码
2008/09/30 Javascript
textarea 控制输入字符字节数(示例代码)
2013/12/27 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
javascript的push使用指南
2014/12/05 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
纯js实现隔行变色效果
2017/11/29 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
2018/05/28 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
python实现根据图标提取分类应用程序实例
2014/09/28 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
如何在pycharm中安装第三方包
2020/10/27 Python
如何使用PHP session
2015/04/21 面试题
教师见习期自我鉴定
2014/04/28 职场文书
运动会口号16字
2014/06/07 职场文书
服装仓管员岗位职责
2014/06/17 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
会计工作总结范文2014
2014/12/23 职场文书
档案工作个人总结
2015/03/03 职场文书
党内外群众意见范文
2015/06/02 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
Django使用channels + websocket打造在线聊天室
2021/05/20 Python
java代码实现空间切割
2022/01/18 Java/Android