У меня проблема с jQuery resizable.
Посмотрите на этот JSFiddle. Несмотря на то, что для сдерживания установлено значение #outerContainer
, когда я пытаюсь перетащить child
#outerContainer
(синий ящик) с помощью своего нижнего или верхнего дескриптора, его верхнее положение будет равным 0, хотя оно находится в пределах красной рамки,
Любые подсказки?
Здесь код, на всякий случай:
HTML
<div id='outerContainer'>
<div id='margin'></div>
<div id='parent'>
<div id='child'></div>
</div>
</div>
CSS
#outerContainer {
position:relative;
border: 1px solid red;
}
#margin {
height:25px;
}
#parent {
position: relative;
width: 50px;
height: 200px;
border: 1px solid black;
}
#child {
position: absolute;
top: -20px;
width:40px;
height:50px;
border: 1px solid blue;
}
JS
$('#child').resizable({handles: 'n, s', containment: '#outerContainer', grid: [10, 10]});
В CSS top: -20px
считается значением смещения, поэтому вы должны связать его с другим элементом, чтобы иметь возможность использовать его (aka position: relative/absolute/fixed
)
Когда вы нажимаете размер на верхней границе, он должен вернуть свое top
значение, чтобы дать вам возможность его отрегулировать. Вы не изменяете width
или height
элемента с этим изменением размера, вы перемещаете его на новую позицию.
Короче говоря, используйте margin-top
вместо top
а вы золотой.
#child {
position: absolute;
margin-top: -20px;
}