0
我想要做的是將3個元素(可能是4/5/6,需要動態)垂直放置在容器中的位置:絕對位置。我知道這可以用一些CSS來實現,但不幸的是我必須在JavaScript中這樣做,所以我需要一個可以計算容器+兒童高度的函數/算法,然後均勻地定位它們。javascript - 以編程方式計算元素之間的填充
所以這裏有一個測試用例:
<div id="element_1" style="position:relative;display:block;width:400px;height:768px">
<div id="child_1" style="position:absolute;display:block;width:400px;height:105px"></div>
<div id="child_2" style="position:absolute;display:block;width:400px;height:105px"></div>
<div id="child_3" style="position:absolute;display:block;width:400px;height:105px"></div>
</div>
有3個孩子的105px,高度每(孩子的高度總是彼此相同,所以JavaScript的我卡在需要定位的3個元素均勻地填充相等垂直
我已經試過類似:
var container; // dom instance of element_1
var children = []; // contains dom instances of each of the children (child_1, child_2, etc)
var container_height = container.getBoundingClientRect().height; // container is css3 scalable, hence the rect
var children_height = children[0].getBoundingClientRect().height; // for example
var padding = (container_height - (children_height*layers.length))/layers.length;
for(var i=0;i<children.length;i++){
children[i].style.top = (padding*(i+1) + (i*children_height)) + 'px';
}
而且它的工作原理有點,但有很多額外的空間在t的底部他的容器,所以它不是晚上間隔。
有人可以幫我嗎?
應該有之前的第一和後填充孩子的數量第三?你爲什麼把它們設定爲絕對的? – epascarello
是的,所有的元素應該在容器內均勻分佈,所以在第一個元素之前和最後一個之後填充。 – Joe
因此,總高度減去div的高度,然後除以4. – epascarello