You can try to use the stop function when dragging and dropping to change mutable parameters. This helped me when I had similar problems setting up containment for both mutable and drag-and-drop interactions.
Note: this works with a locked aspect ratio to a mutable interaction change.
Example:
<div id="container" style="width: 320px; height: 240px; background-color: #000000;"> <div id="subject" style="width: 240px; height: 180px; background-color: #ffffff;"> </div> </div> <script type="text/javascript" language="javascript"> jQuery(document).ready(function() { jQuery("#subject").resizable( { aspectRatio: 4 / 3, minHeight: 120, minWidth: 160, maxHeight: 240, maxWidth: 320 }).draggable( { containment: "#container", stop: function(evt, ui) { var container = jQuery("#container"); var subject = jQuery("#subject"); var containerPosition = container.position(); var subjectPosition = subject.position(); var relativeLeft = subjectPosition.left - containerPosition.left; var relativeTop = subjectPosition.top - containerPosition.top; var maxWidth = (container.width() - relativeLeft) | 0; var maxHeight = (container.height() - relativeTop) | 0; subject.resizable("option", "maxWidth", maxWidth); subject.resizable("option", "maxHeight", maxHeight); } }); }); </script>
source share