divをページ上の全幅にしたいとします。それはコンテナです。次にdivでそれを埋めたいと思います。各divの幅は50 * nです(nはランダムに生成された数値です)。幅1240ピクセルのコンテナdivがあるとします。今私はそれをいっぱいにするJS関数を実行します。幅の異なる10のdiv。今度はすべての内部divsの幅を合計すると、私は1240pxを取得します。番号をランダムに生成された部分に分割する方法
このようにして、私がfill関数を実行すると、常に1240pxのdivのコレクションが得られます。 divの数は固定数であってはならないので、4つまたは7つのdivがあります。 divs量の数はランダムに生成されます。次に、スペースが残っている場合、1240 pxの場合、この数値は40 pxです.50 * n幅でなくてもよいダミーdivで埋められます。
私は関数を作成しましたが、必ずしもそうなるとは限りません。
function generateItems() {
originalwidth = $(document).width() - 40;
var fullwidth = 0;
var counter = 0;
do{
var randomnumber = 1 + Math.floor(Math.random() * 4);
tempwidth = 50 * randomnumber;
fullwidth += tempwidth;
if (fullwidth > originalwidth) {
$('#questions').append('<div class="question-area" style="width:' + (originalwidth - fullwidth) + 'px;"><strong>' + (originalwidth - fullwidth) + '</strong></div>');
break;
}
width_padding = tempwidth;
$('#questions').append('<div class="question-area" style="width:' + width_padding + 'px;">' + width_padding + '</div>');
counter++;
}
while (true);
}
私はこのような課題を解決するのに良い方法であるとは確信していません。これをよりうまくやり遂げる方法について、あなたの考えをお伝えください。
あなたは乱数を必要とする理由私はわからない...なぜ単に '(1240年から1240年)/ N '? – home
もし1240をnで除算するだけなら、同じ幅のn個のdivを得るだけですが、50pxのステップとは違う必要があります。 –
あなたの質問とは別に、doループの代わりに 'var random number = 1 + Math.floor(Math.random()* 3);'を実行するのはどうですか?より効率的です。 – Andy