<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>jQuery UI Resize Elementen</title>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/themes/base/jquery-ui.css" type="text/css" media="all" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/jquery-ui.min.js" type="text/javascript"></script>
<script>
;(function($) {
function resizable()
{
var leftWidth = $( "#left" ).width() - 4;
var minHeight = 70;
var maxHeight = 760;
$( "#klaarzetten #resizable" ).resizable({
handles : "s",
maxWidth: leftWidth,
minWidth: 100,
minHeight: minHeight,
resize: function(event, ui) {
//Bereken de toe-/afgenomen hoogte (negatief kleiner / positief groter)
var vertical = ui.size.height - ui.originalSize.height;
//als vertical is positief
if (vertical > 0) {
var klaarzetten = $( "#klaarzetten" );
var onderweg = klaarzetten.next().next();
var newheight = 0;
if(klaarzetten != null) {
newheight = maxHeight - (onderweg.height() + klaarzetten.height());
if(newheight < minHeight) {
$( "#reserveren #resizable" ).css("height", minHeight);
} else {
$( "#reserveren #resizable" ).css("height", newheight);
}
var curheight = $( "#klaarzetten #resizable" ).height() + $( "#reserveren #resizable" ).height() + $( "#onderweg #resizable" ).height();
if(curheight >= maxHeight) { //controleer hoogtes deze mogen niet m zijn dan totale hoogte
//alert(curheight);
if($( "#onderweg #resizable" ).height() < minHeight) {
$( "#onderweg #resizable" ).css("height", minHeight);
} else {
$( "#onderweg #resizable" ).css("height", maxHeight - $( "#klaarzetten #resizable" ).height() - $( "#reserveren #resizable" ).height() - 4);
}
if($( "#reserveren #resizable" ).height() < minHeight) {
$( "#reserveren #resizable" ).css("height", minHeight);
if($( "#onderweg #resizable" ).height() < minHeight) {
$( "#onderweg #resizable" ).css("height", minHeight);
} else {
$( "#onderweg #resizable" ).css("height", maxHeight - $( "#klaarzetten #resizable" ).height() - $( "#reserveren #resizable" ).height() - 4);
}
} else {
$( "#reserveren #resizable" ).css("height", maxHeight - $( "#klaarzetten #resizable" ).height() - $( "#onderweg #resizable" ).height() - 4);
if($( "#onderweg #resizable" ).height() < minHeight) {
$( "#onderweg #resizable" ).css("height", minHeight);
} else {
$( "#onderweg #resizable" ).css("height", maxHeight - $( "#klaarzetten #resizable" ).height() - $( "#reserveren #resizable" ).height() - 4);
}
}
$( "#klaarzetten #resizable" ).css("height", maxHeight - $( "#reserveren #resizable" ).height() - $( "#onderweg #resizable" ).height() - 4);
}
}
} else if (vertical < 0) { //als vertical is negatief
var reserveren = $( "#klaarzetten" ).next();
var onderweg = reserveren.next();
var newheight = 0;
if(reserveren != null) {
newheight = maxHeight - onderweg.height() - $( "#klaarzetten" ).height();
if(newheight < minHeight) {
$( "#reserveren #resizable" ).css("height", minHeight);
} else {
$( "#reserveren #resizable" ).css("height", newheight);
}
}
}
/*if (delta_x > 0) {
dir += 'e';
} else if (delta_x < 0) {
dir += 'w';
}*/
// do something with this string
//alert(next.height());
}
});
$( "#reserveren #resizable" ).resizable({
handles : "s",
maxWidth: leftWidth,
minWidth: 100,
minHeight: minHeight,
resize: function(event, ui) {
var vertical = ui.size.height - ui.originalSize.height;
if (vertical > 0) {
var reserveren = $( "#reserveren" );
var onderweg = reserveren.next();
var newheight = 0;
if(reserveren != null) {
newheight = maxHeight - ($( "#klaarzetten" ).height() + reserveren.height());
if(newheight < minHeight) {
$( "#onderweg #resizable" ).css("height", minHeight);
var curheight = $( "#klaarzetten #resizable" ).height() + $( "#reserveren #resizable" ).height() + $( "#onderweg #resizable" ).height();
if(curheight > maxHeight) { //controleer hoogtes deze mogen niet minder zijn dan totale hoogte
//alert();
$( "#onderweg #resizable" ).css("height", minHeight);
$( "#reserveren #resizable" ).css("height", maxHeight - $( "#klaarzetten #resizable" ).height() - $( "#onderweg #resizable" ).height() - 4);
$( "#klaarzetten #resizable" ).css("height", maxHeight - $( "#reserveren #resizable" ).height() - $( "#onderweg #resizable" ).height() - 4);
}
} else {
$( "#onderweg #resizable" ).css("height", newheight);
}
}
} else if (vertical < 0) {
var reserveren = $( "#klaarzetten" ).next();
var onderweg = reserveren.next();
var newheight = 0;
if(reserveren != null) {
newheight = maxHeight - $( "#klaarzetten" ).height() - reserveren.height();
if(newheight < minHeight) {
$( "#onderweg #resizable" ).css("height", minHeight);
} else {
$( "#onderweg #resizable" ).css("height", newheight);
}
}
}
}
});
$( "#openstaande_orderregels #resizable" ).resizable({
handles : "s",
maxWidth: leftWidth,
minWidth: 100,
minHeight: minHeight,
resize: function(event, ui) {
var vertical = ui.size.height - ui.originalSize.height;
if (vertical > 0) {
var openstaande_orderregels = $( "#openstaande_orderregels" );
var newheight = 0;
if(openstaande_orderregels != null) {
newheight = maxHeight - openstaande_orderregels.height();
if(newheight < minHeight) {
$( "#in_behandeling #resizable" ).css("height", minHeight);
$( "#openstaande_orderregels #resizable" ).css("height", maxHeight-minHeight);
} else {
$( "#in_behandeling #resizable" ).css("height", newheight+2);
}
}
} else if (vertical < 0) {
var openstaande_orderregels = $( "#openstaande_orderregels" );
var newheight = 0;
if(openstaande_orderregels != null) {
newheight = maxHeight - openstaande_orderregels.height() + 2;
if(newheight < minHeight) {
$( "#in_behandeling #resizable" ).css("height", minHeight);
} else {
$( "#in_behandeling #resizable" ).css("height", newheight);
}
}
}
$( "#openstaande_orderregels #resizable" ).css("width", "100%");
}
});
$( "#left" ).resizable({
handles : "e",
minWidth: 100,
minHeight: minHeight,
alsoResize: '#klaarzetten #resizable,#reserveren #resizable,#onderweg #resizable',
resize: function(event, ui) {
var horizontal = ui.size.width - ui.originalSize.width;
if (horizontal > 0) {
var links = $( "#left" );
var rechts = links.next();
var newwidth = 0;
if(rechts != null) {
newwidth = 960 - links.width() - 4;
if(newwidth < 100) {
$( "#right" ).css("width", 100);
$( "#left" ).css("width", 860);
$( "#klaarzetten #resizable" ).css("width", 856);
$( "#reserveren #resizable" ).css("width", 856);
$( "#onderweg #resizable" ).css("width", 856);
} else {
$( "#right" ).css("width", newwidth);
$( "#left" ).css("width", 960-newwidth-4);
$( "#klaarzetten #resizable" ).css("width", 956-newwidth);
$( "#reserveren #resizable" ).css("width", 956-newwidth);
$( "#onderweg #resizable" ).css("width", 956-newwidth);
}
}
} else if (horizontal < 0) {
var links = $( "#left" );
var rechts = links.next();
var newwidth = 0;
if(rechts != null) {
newwidth = 960 - links.width() - 4;
if(newwidth < 100) {
$( "#right" ).css("width", 100);
} else {
$( "#right" ).css("width", newwidth);
}
//alert(links.width());
//alert(rechts.width());
}
}
}
});
}
$(document).ready(function() {
resizable();
});
})(jQuery);
</script>
<style type="text/css">
body {
width:960px;
height:768px;
margin:0px auto;
}
h3,
h4 {
margin: 0px;
font-weight: normal;
}
h3 {
padding:5px 0px;
text-align:center;
font-size:1.0em;
margin:0.5em;
}
#left {
width:348px;
}
#right {
width:608px;
}
#klaarzetten #resizable, #reserveren #resizable, #onderweg #resizable {
width:100%;
height:252px;
margin:2px;
position:relative;
overflow:hidden;
}
#openstaande_orderregels #resizable, #in_behandeling #resizable {
height:380px;
width:100%;
margin:2px;
position:relative;
}
</style>
</head>
<body>
<!-- verschillende elementen op de pagina / formaat aanhoudend van 960*768 -->
<div id="left" style="float:left;">
<div id="klaarzetten">
<div id="resizable" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">Klaarzetten</h3>
<div style="margin: 0.5em;">
<div style="overflow:auto;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam mauris dui, dapibus non volutpat vitae, imperdiet ut lacus. Proin tincidunt massa eu turpis accumsan vehicula. Sed fermentum ipsum vitae dolor elementum ultricies. Pellentesque id viverra nulla. Suspendisse potenti. Cras non ante justo. Curabitur rutrum, ante id gravida eleifend, quam eros elementum nibh, eget condimentum erat nunc eget est. Nunc quis pulvinar libero. Vestibulum non urna eu diam ultricies feugiat. Pellentesque ullamcorper pulvinar arcu posuere tincidunt. Sed viverra euismod urna, at ultricies erat dictum eget.
</div>
</div>
</div>
</div>
<div id="reserveren">
<div id="resizable" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">Reserveren</h3>
<div style="margin: 0.5em;">test</div>
</div>
</div>
<div id="onderweg">
<div id="resizable" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">Onderweg</h3>
<div style="margin: 0.5em;">test</div>
</div>
</div>
</div>
<div id="right" style="float:right;">
<div id="openstaande_orderregels">
<div id="resizable" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">Openstaande Orderregels</h3>
<div style="margin: 0.5em;">test</div>
</div>
</div>
<div id="in_behandeling">
<div id="resizable" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">In Behandeling</h3>
<div style="margin: 0.5em;">test</div>
</div>
</div>
</div>
</body>
</html>