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