1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 拖动 html表格单元格宽度 jQuery实现拖动调整表格单元格大小的代码实例

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

时间:2023-01-21 22:10:38

相关推荐

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

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

在实际应用中,可能有这样的需求,那就是需要调整td单元格的大小。

也许是为了便于观察,也许是其他原因,反正这样的需求是有的,下面就分享一段能够实现此功能的代码。

代码实例如下:

脚本之家

table {

border-collapse: collapse;

}

td {

text-align: center;

}

(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

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

});

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。