Распределительный будет боль. Я думаю, что есть библиотека jQuery, которая обрабатывает некоторые из них ... Я буду ткнуть. Это довольно забавная проблема.
Вот что я зашел так далеко. Это немного редки.
http://jsfiddle.net/twPQ7/2/
Та часть, которая пытается определить, сколько еще компонентов она должна строить это грубая часть. Я стараюсь, чтобы это было как можно меньше петель:
var containerSize = getContainerSize();
var elementWidth = 0;
var elementHeight = 0;
// width
while (elementWidth < containerSize.x)
{
var size = generateElement();
elementWidth += size.x;
elementHeight += size.y;
}
// height, if not already full
while (elementHeight < containerSize.y)
{
var size = generateElement();
elementWidth += size.x;
elementHeight += size.y;
}
Немного почистил. Проверьте скрипку снова: http://jsfiddle.net/twPQ7/2/
// determine the size of the container
var containerSize = getContainerSize();
var elementWidth = 0;
var elementHeight = 0;
// iteratively generate elements until we've hit the width of the container
while (elementWidth < containerSize.x)
{
var size = generateElement();
elementWidth += size.x;
// keep track of the tallest element.
if (size.y > elementHeight) elementHeight = size.y;
}
// iteratively generate elements until we've hit the height of the container
while (elementHeight < containerSize.y)
{
var size = generateElement();
elementHeight += size.y;
}
Так что, когда вы говорите, случайно, является то, что полный диапазон от 0 до макс контейнера ширина/высота? Или вы имели в виду «идеальный» диапазон? –
Я предполагаю, что должны быть НЕКОТОРЫЕ параметры (возможно, мин. 50 пикселей, максимум 300 пикселей), чтобы они были видимыми, но не подавляющими. – user1209945