jQuery Resizable:加大调整宽度

概要:

如果将可resize的元素居中并向左/向右展开,则会产生幻觉,它只会扩展鼠标移动的一半。

原因:

发生这种情况是因为对象居中。

题:

与鼠标移动相比,您如何提高对象resize的速度? 对于居中元素,我希望对象扩展两倍于鼠标距离的大小。

给定一个居中的DIV,我能想到的最好的方法是在回调中设置宽度。

$('#divID').resizable({ handles : 'e,w' , resize : function (event,ui){ ui.position.left = ui.originalPosition.left; ui.size.width = ( ui.size.width - ui.originalSize.width )*2 + ui.originalSize.width; } }); 

以上只是计算最终宽度和原始宽度之间的差异,然后乘以2,然后将其加到原始宽度。

我不确定这是最好的方法。 因为宽度在对象上设置两次,所以我不喜欢它。 我认为更好的方法是接受某种( xRateX-Step )和( yRateY-Step )选项,并将其包含在jQuery函数的_mouseDrag:部分中。

要做到这一点,没有编辑jQuery,我想我必须创建一个插件来覆盖resizable的_mouseDrag函数。

我会接受更好的答案! 🙂

我不知道你如何集中你的可resize,但这个测试用例适合我。

在它的核心我做了一些类似于vol7ron的东西但是我使用了一个较少的任务并且计算更具可读性:D只是开玩笑选择你喜欢的更适合你的东西

 ui.size.width += ui.size.width - ui.originalSize.width;