代码之家  ›  专栏  ›  技术社区  ›  vol7ron

jquery可调整大小:将调整大小宽度加倍

  •  1
  • vol7ron  · 技术社区  · 14 年前

    简介:

    如果将可调整大小的元素居中并向左/向右展开,则会产生一种错觉,认为它只展开鼠标移动的一半。

    原因:

    这是因为对象是居中的。

    问题:

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

    2 回复  |  直到 14 年前
        1
  •  2
  •   vol7ron    14 年前

    给定一个居中的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 X-Step )和( yRate Y-Step )选项并将其包含在 _mouseDrag: jquery函数的一部分。

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

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

        2
  •  2
  •   jitter    14 年前

    我不知道你是怎么把你的尺寸调整到中心的,但是这个 test case 对我来说效果很好。

    从本质上讲,我做了一些类似于vol7ron的事情,但我少用一个作业,而且计算更易读:D开玩笑说,选择你喜欢的,更适合你的。

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