2

有没有办法限制一个元素的大小调整,这样你就不能覆盖另一个元素?我知道您可以将包含设置为父元素,但在这里我只想阻止用户遮挡另一个同级元素的视图。

如果调整左侧对话框的大小,我希望插件防止用户覆盖右侧的对话框:在此处输入图像描述

4

1 回答 1

3

jQuery UI Resizable 控件有许多可用的事件,包括“ resize ”事件。

这可能不是实现这一目标的唯一方法,甚至不一定是最好的方法,但它可能是一种方法。

当调整大小开始时(将由 resize 事件拾取),获取您想要保留的元素的顶部和/或左侧位置(即您不想重叠的元素)。我将此元素称为目标。

随着调整大小的元素变宽,检查它的大小是否大于目标的左侧位置,如果是,请防止调整大小的元素进一步增长。

粗略的例子:

var targetPos = $('#myTarget').position();

    $('#myResizable').resizable({
      resize: function(event, ui){ 
        if (ui.position.left + ui.size.width > targetPos.left) {
          $(this).resizable({ maxWidth: ui.size.width });
        }
      }
    });
于 2012-01-30T21:29:21.977 回答