1

概要:

如果将一个可调整大小的元素居中并左/右扩展,它会产生一种错觉,即它只扩展了鼠标移动的一半。

原因:

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

问题:

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

4

2 回答 2

2

给定一个居中的 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,然后将其添加到原始宽度。

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

要在不编辑 jQuery 的情况下执行此操作,我想我必须创建一个覆盖可调整大小_mouseDrag功能的插件。

我会接受更好的答案!:)

于 2010-11-15T17:58:01.600 回答
2

我不知道您如何将可调整大小居中,但这个测试用例对我来说效果很好。

从本质上讲,我做了类似于 vol7ron 的事情,但我少用了一项作业,而且计算的可读性更好:D 只是开玩笑,选择你喜欢的更适合你的东西

ui.size.width += ui.size.width - ui.originalSize.width;
于 2010-11-15T18:37:43.800 回答