Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery Resizeable()动态maxWidth选项_Javascript_Jquery_Css_Jquery Ui_User Interface - Fatal编程技术网

Javascript jQuery Resizeable()动态maxWidth选项

Javascript jQuery Resizeable()动态maxWidth选项,javascript,jquery,css,jquery-ui,user-interface,Javascript,Jquery,Css,Jquery Ui,User Interface,我有3列可以调整大小。当一个变宽时,它左边的那个变小了。基本上只有两个句柄。左栏和中栏。所以当中栏变薄时,右栏相应地扩大。这三个变量都包含一个900px的父div,因此这三个变量的总和总是900。它们具有静态设置的最大和最小宽度 我的问题是,如果您使用左控制柄并将其一直向右移动,您仍然可以使用右控制柄并将中间列扩展到父div的边缘 我想到了一种解决这个问题的方法,编写一个函数,检查列的宽度,然后从父div宽度中减去左列和右列,我称之为mWid。这就留下了要设置为中间列的maxWidth的数字 现

我有3列可以调整大小。当一个变宽时,它左边的那个变小了。基本上只有两个句柄。左栏和中栏。所以当中栏变薄时,右栏相应地扩大。这三个变量都包含一个900px的父div,因此这三个变量的总和总是900。它们具有静态设置的最大和最小宽度

我的问题是,如果您使用左控制柄并将其一直向右移动,您仍然可以使用右控制柄并将中间列扩展到父div的边缘

我想到了一种解决这个问题的方法,编写一个函数,检查列的宽度,然后从父div宽度中减去左列和右列,我称之为mWid。这就留下了要设置为中间列的maxWidth的数字

现在的问题是mWid没有更新这里的“maxWidth:mWid”

右手柄的函数如下所示:

$(function() {
    $("#midResizable").resizable({
        handles: 'e',
        containment: '#container',
        maxWidth: mWid, // gets set once, but doesn't update! WHY?
        minWidth: 195,
        resize: function(event, ui) {
            contWidth = $('#container').width()
            newWidth = $(this).width()
            leftWidth = $('#leftResizable').width()
            rightWidth = $('#rightResizable').width()
            $("#rightResizable").css("width", (contWidth-15)-(newWidth)-(leftWidth)+"px");
            checkWid()
        }
    });     
});     

function checkWid() {
    rightWidth = $('#rightResizable').width()
    leftWidth = $('#leftResizable').width()
    contWidth = $('#container').width()
    mWid = (contWidth-15)-(rightWidth)-(leftWidth)
}
看看这个:

看起来像maxWidth:mWid,只在init上被调用

在此之后需要显式设置maxWidth,如下所示:

$( "#midResizable" ).resizable( "option", "maxWidth", mWid );

您可以在resizeable的start方法中使用以下代码。每当您尝试调整div元素的大小时,它将动态更新maxWidth和maxHeight

$('.droppedBtn').resizable({

  .... //you resizable properties

  start: function(event,ui)
  {

    $( ".CLASSNAME" ).resizable( "option", "maxWidth", layout.lWidth);
    $( ".CLASSNAME" ).resizable( "option", "maxHeight", layout.lHeight);

  },

  stop: function(event,ui){

  }

});

或者也可以使用CSS中的最大宽度。也许,只需将CSS应用于元素(通过CSS文件或JQuery)