Skip to content

Commit

Permalink
Resizable: Fixed sign error on offset calculation. Fixes #9307 - Resi…
Browse files Browse the repository at this point in the history
…zable: Erratic behavior of contained elements within scrollable grandparents

(cherry picked from commit 6df5c1a)
  • Loading branch information
Christian Klammer authored and scottgonzalez committed Nov 26, 2013
1 parent e4a194c commit 1660c76
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 2 deletions.
47 changes: 47 additions & 0 deletions tests/unit/resizable/resizable_events.js
Expand Up @@ -170,4 +170,51 @@ test("stop", function() {

});

test( "resize (containment) works with parent with negative offset", function() {

expect( 1 );

var widthBefore, widthAfter,
handle = ".ui-resizable-e",
target = $( "#resizable1" ),
absoluteContainer = target.wrap( "<div />" ).parent(),
fixedContainer = absoluteContainer.wrap( "<div />" ).parent(),
increaseWidthBy = 50;

// position fixed container in window top left
fixedContainer.css({
width: 400,
height: 100,
position: "fixed",
top: 0,
left: 0
});

// position absolute container within fixed on slightly outside window
absoluteContainer.css({
width: 400,
height: 100,
position: "absolute",
top: 0,
left: -50
});

// set up resizable to be contained within absolute container
target.resizable({
handles: "all",
containment: "parent"
}).css({
width: 300
});

widthBefore = target.width();

TestHelpers.resizable.drag( handle, increaseWidthBy, 0 );

widthAfter = target.width();

equal( widthAfter, ( widthBefore + increaseWidthBy ), "resizable width should be increased by the value dragged" );

});

})(jQuery);
4 changes: 2 additions & 2 deletions ui/jquery.ui.resizable.js
Expand Up @@ -774,8 +774,8 @@ $.ui.plugin.add("resizable", "containment", {
isParent = that.containerElement.get(0) === that.element.parent().get(0);
isOffsetRelative = /relative|absolute/.test(that.containerElement.css("position"));

if(isParent && isOffsetRelative) {
woset -= that.parentData.left;
if ( isParent && isOffsetRelative ) {
woset -= Math.abs( that.parentData.left );
}

if (woset + that.size.width >= that.parentData.width) {
Expand Down

0 comments on commit 1660c76

Please sign in to comment.