我有容器,它是可重复大小的并且包含内部元素<div>
,可以按任何顺序放置,当它们的数量上升时,我可以将它们添加到容器中,变得更小。我的目标是当内部div height
或width
变得小于100px
然后自动重新调整容器大小。
可以有多个小于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基础模块,js。
答案 0 :(得分:0)
我认为你试图实现:
听起来你可以在css中使用flexbox完成样式:
.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观察组件了。 如果组件也应该具有可变高度,并且容器可以具有多行,则事情变得更加棘手。然后你需要更具体地说明约束。
编辑: 如果你不能使用flexbox for IE9,那么试试: