概要:
如果将一个可调整大小的元素居中并左/右扩展,它会产生一种错觉,即它只扩展了鼠标移动的一半。
原因:
发生这种情况是因为对象居中。
问题:
与鼠标移动相比,您将如何提高对象调整大小的速度?对于居中的元素,我希望对象扩大两倍的鼠标距离。
如果将一个可调整大小的元素居中并左/右扩展,它会产生一种错觉,即它只扩展了鼠标移动的一半。
发生这种情况是因为对象居中。
与鼠标移动相比,您将如何提高对象调整大小的速度?对于居中的元素,我希望对象扩大两倍的鼠标距离。
给定一个居中的 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,然后将其添加到原始宽度。
我不确定这是最好的方法。我,一方面,不喜欢它,因为宽度在对象上设置了两次。我认为更好的方法是接受某种 ( xRate
or X-Step
) 和 ( yRate
or Y-Step
) 选项,并将其包含在_mouseDrag:
jQuery 函数的部分中。
要在不编辑 jQuery 的情况下执行此操作,我想我必须创建一个覆盖可调整大小_mouseDrag
功能的插件。
我会接受更好的答案!:)
我不知道您如何将可调整大小居中,但这个测试用例对我来说效果很好。
从本质上讲,我做了类似于 vol7ron 的事情,但我少用了一项作业,而且计算的可读性更好:D 只是开玩笑,选择你喜欢的更适合你的东西
ui.size.width += ui.size.width - ui.originalSize.width;