ボックスを固定サイズで埋める必要があります.9つの ランダムなサイズの形状で埋める必要があります.
私は 9 つの形状を持っているので、1 つまたは複数を別の形状の上に重ねることができます。これのポイントは、これらの形状がランダムに散らばっているかのように、ランダム効果を作成することです。しかし、ここでも空白を残すことはできません。これは非常に重要であり、最も難しい部分です。
だから、私がより良くしていることを想像するために、これがどのように見えるべきかの例があります
また、jsFiddle もセットアップしました。ここで確認してください。
私はこれに何時間も取り組んでいましたが、何を考えてもうまくいかなかったので、これはコードで行っていることの非常に基本的な例です。
完全に機能するコードを求めているわけではありませんが、この時点からどのように続行すべきかについてのアドバイスは非常に役立ちます.
SO ルールは jsFiddle コードを要求しているため、次のようになります。
$shape = $('<div class="shape"></div>');
$container = $(".container");
//random shape sizes
shapes = [
[rand(50, 70), rand(50, 70)],
[rand(50, 70), rand(50, 70)],
[rand(60, 70), rand(60, 70)],
[rand(60, 100), rand(60, 100)],
[rand(100, 140), rand(100, 140)],
[rand(100, 140), rand(100, 140)],
[rand(100, 140), rand(100, 140)],
[rand(140, 190), rand(140, 190)],
[rand(150, 210), rand(150, 210)]
];
used = [];
left = 0;
top = 0;
for(i = 1; i <= 3; i++){
offset = rand(0, 8);
width = shapes[offset][0];
height = shapes[offset][1];
$container.append(
$shape.css({
width: width,
height: height,
top: top,
left: left,
zIndex: i
})
.text(i)
.clone()
);
//increase top offset
top += shapes[offset][1];
}
function rand(from, to){
return Math.floor((Math.random()*to)+from);
}