基于jquery-resizable创建可调整大小的表(table)格

 更新时间:2023年06月15日 00:09:42   作者:webkaka  
本文介绍如何基于jquery-resizable实现可调整表格(table)列宽的代码,需要的朋友可以参考下

本文介绍如何使用jquery-resizable调整表格(table)列宽。

效果图

在线演示 下载地址

示例介绍

鼠标拖动单元格边框,可调整列宽。

创建可调整大小的列需要付出一些额外的努力,因为表没有一种简单的方法来创建可以移动的拖动句柄。

为了调整列的大小,我们可以在列的右侧添加一个元素来提供句柄,这样我们就有了一个用于拖动的视觉指示器。要调整大小的表格单元格为 position:relative,注入的元素为 position:absolute 并推到单元格右侧以提供拖动手柄。拖动然后简单地调整单元格的大小。

在实践中,这意味着你需要一些CSS(或jquery样式)来强制注入样式和逻辑来注入元素。

HTML

<table>
    <thead>
        <th> col 1 </th>
        <th> col 2 </th>
        <th> col 3 </th>
        <th> col 4 </th>
    </thead>
    <tbody>
        <tr>
            <td> Column 1 </td>
            <td> Column 2 </td>
            <td> Column 3 </td>
            <td> Column 4 </td>
        </tr>
        <tr>
            <td> Column 1 </td>
            <td> Column 2 </td>
            <td> Column 3 </td>
            <td> Column 4 </td>
        </tr>
    </tbody>
</table>

html的table标签为常规结构,不需要添加额外的ID属性或class属性。

jQuery

jQuery编程需要先引用jQuery库文件,以及jquery-resizable.js插件。

<script src='jquery-3.2.1.min.js'></script>
<script src='jquery-resizable.js'></script>
<script>
$("td:first-child,td:nth-child(2),td:nth-child(3),th:first-child,th:nth-child(2),th:nth-child(3)").css({position: "relative" }).prepend("<div class='resizer'></div>").resizable({
  resizeHeight: false,
  handleSelector: "",
  onDragStart: function (e, $el, opt) {
    if (!$(e.target).hasClass("resizer"))
    return false;
    return true;
  } });
</script>

上面的jQuery实现代码,加上注释文字,你可能更容易理解:

//$("td,th")
$("td:first-child,td:nth-child(2),td:nth-child(3),th:first-child,th:nth-child(2),th:nth-child(3)").
css({
  /* 需要包含 resizer */
  position: "relative" })
/* 检查 .resizer CSS */.
prepend("<div class='resizer'></div>").
resizable({
  resizeHeight: false,
  // 通过 .resizer 元素,使用列作为句柄和筛选器
  handleSelector: "",
  onDragStart: function (e, $el, opt) {
    // 只拖拽 resizer
    if (!$(e.target).hasClass("resizer"))
    return false;
    return true;
  } });

总结

本文介绍了使用jquery-resizable拖动单元格边框调整表格(table)列宽的方法,需要该效果的朋友可以直接下载源码使用。

相关文章

  • jQuery 三击事件实现代码

    jQuery 三击事件实现代码

    jQuery 中自带有双击事件,那么当需要三击某对象执行某个事件时怎么办呢?今天就让我们看看一段 jQuery 三击事件代码
    2013-09-09
  • Android中的jQuery:AQuery简介

    Android中的jQuery:AQuery简介

    jQuery的流行已经成为了事实,它极大地减少了执行异步任务和操作DOM所需要的代码数量。新项目AQuery想要为Android开发者提供同样的功能
    2014-05-05
  • jQuery获取浏览器中的分辨率实现代码

    jQuery获取浏览器中的分辨率实现代码

    本篇文章小编为大家介绍,使用jQuery获取浏览器中的分辨率的方法。需要的朋友参考下
    2013-04-04
  • 分享jQuery的3种常见事件监听方式

    分享jQuery的3种常见事件监听方式

    这篇文章主要介绍了jQuery常见事件的监听方式,页面经常会有各种事件发生,事件发生后需要进行一些特定处理,即执行特定的函数或者语句。这就需要对事件进行监听,下面关于监听事件的介绍,需要的小伙伴可以参考一下
    2022-03-03
  • JQuery事件委托(适用于给动态生成的脚本元素添加事件)

    JQuery事件委托(适用于给动态生成的脚本元素添加事件)

    jq写了点击事件,是通过获取元素的类名被点击后执行对应方法,但是研发套完模板,他会把所有的结构先清空,导致jq根本找不到那个元素,所以事件就不得执行了,需要的朋友可以参考下
    2020-02-02
  • jQuery中getJSON跨域原理的深入讲解

    jQuery中getJSON跨域原理的深入讲解

    这篇文章主要给大家介绍了关于jQuery中getJSON跨域原理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • jquery对复选框(checkbox)的操作汇总

    jquery对复选框(checkbox)的操作汇总

    本文给大家汇总介绍了一些jQuery操作复选框(checkbox)的方法和技巧,非常的简单实用,有需要的小伙伴可以参考下。
    2016-01-01
  • jQuery实现的类flash菜单效果代码

    jQuery实现的类flash菜单效果代码

    这里要说的就是一个菜单的hover的效果,一般我们通过CSS的伪类:hover实现的菜单切换都比较单调,因为仅仅是一个简单的图片的变化,不像很多flash菜单一样变化非常的平滑,但是这里我们就是要用非flash的技术实现一个平滑的hover效果。
    2010-05-05
  • 改善你的jQuery的25个步骤 千倍级效率提升

    改善你的jQuery的25个步骤 千倍级效率提升

    改善你的jQuery的25个步骤 -- 从头看完会有无数收获,千倍级效率提升
    2010-02-02
  • 用Jquery重写windows.alert方法实现思路

    用Jquery重写windows.alert方法实现思路

    本文将介绍下用Jquery重写windows.alert方法,已经在 IE8 , firefox3.0.11下面测试通过,喜欢的朋友可以放心使用
    2013-04-04

最新评论