У меня есть контейнер, который является повторно значимым и содержит внутренние элементы <div>
, которые могут быть размещены в любом порядке, и я могу добавить их в контейнер любой суммы, когда количество их растет, становится меньше. Моя цель заключается в том, когда внутренние height
или width
100px
, становится меньше, чем 100px
затем автоматически 100px
контейнер.
Может быть более одного элемента меньше 100 100px
. При изменении размеров контейнера все элементы становятся больше в зависимости от процента их width
.
Проблема: когда имеется более одного небольшого элемента, они отправляют много событий в контейнер, я хочу отправить один запрос в контейнер, чтобы изменить размер, если есть вероятность, что этого достаточно, чтобы сделать весь элемент достаточным размером.
Я пытался watch
ширину, но она посылает на многие запросы.
scope.$watch(function () {
return element.width();
}, function (oldval, newval) {
clearTimeout(containerCtrl.resizedFinished);
containerCtrl.resizedFinished = setTimeout(function () {
console.log("New Value=" + newval);
if (newval < 100)
scope.resizeContainer(element.width());
}, 100);
});
Может быть, кто-то может дать мне какие-нибудь предложения? Я использую Angular, jquery base module, js.
Я думаю, вы пытаетесь достичь:
Похоже, вы можете получить стиль, сделанный с помощью flexbox в css:
.container {
display: inline-flex;
flex-direction: row;
padding: 2px;
min-width: 500px;
height: 120px;
background-color: yellow;
}
.component {
background-color: grey;
flex: 0 1 200px;
min-width: 100px;
height: 50px;
margin: 2px;
}
Таким образом, вам не нужно наблюдать за компонентами через jQuery. Если компоненты также должны иметь переменную высоту, а контейнер может иметь несколько строк, все становится сложнее. Тогда вам нужно быть более конкретными в отношении ограничений.
EDIT: Если вы не можете использовать flexbox для IE9, попробуйте: