#javascript #jquery #html #css #jquery-ui-resizable
#javascript #jquery #HTML #css #jquery-ui-resizable
Вопрос:
У меня есть несколько divs в контейнере div, вот так:
<div id="container">
<div class="resizable"></div>
<div class="resizable"></div>
</div>
и они должны быть изменяемыми по размеру. С помощью jQuery я мог бы добиться изменения размера, но теперь я нашел «вещь».
Когда я изменяю размер любого столбца, если один или несколько родственных элементов достигают предела «контейнера», они переходят на новую строку вместо того, чтобы останавливать изменение размера. Вы можете увидеть пример здесь.
Я хочу остановить изменение размера, когда младший брат достигнет родительского предела. Я пробовал это так много раз, и нет ни одного сообщения, в котором говорилось бы об этом, и ни одно из сделанных мной обходных решений не сработало.
Комментарии:
1. Если вы превысите ограничение ширины родительского элемента, они, конечно, переместятся ниже.
2. Да, но он использует родительский элемент в качестве элемента сдерживания
containment: '#container'
.3. И как мне сообщить элементу, чтобы он остановил изменение размера, когда какой-либо из его родственных элементов достигает предела??
Ответ №1:
Я добавил white-space: nowrap;
в ваш контейнер, чтобы предотвратить разрушение элементов.
Теперь, чтобы управлять вашим изменением размера на основе нескольких элементов, все, о чем я могу думать, это добавить js threatment к событию изменения размера, указывающее сохранять размер, когда сумма дочерней ширины достигает родительской ширины, вот так:
$('.resizable').resizable({
handles: 'e',
containment: '#container',
resize: function( event, ui ) {
var parent = ui.element.parent();
var cw = 0;
ui.element.siblings().each(function() {
cw = $(this).width();
});
if(parent.width() <= cw ui.element.width()) {
ui.element.width(
parent.width() - cw
);
}
}
});
Это сохранит все элементы внутри ограничения контейнера. Вам просто нужно разобраться с заполнением между вашими элементами, которые из-за inline-block
Вот в чем проблема:http://jsfiddle.net/Yz9K2/2 /