我想在页面上制作一个全宽的div。这是一个容器。然后我想用div填充它,每个div的宽度是50 * n,其中n是一个随机生成的数字。假设我有一个宽度为1240px的容器div。现在我运行一个JS函数,用它填充它。 10个不同宽度的div。现在,如果我总结所有内部div的宽度,我得到1240px。如何将数字分解为随机生成的部分
这种方式我总是知道,当我运行灌装功能时,我得到一个div总共总是1240px的集合。 div的数量不应该是一个固定的数字,所以可以有4个或7个div。 divs数量是随机生成的。然后,如果剩下一些空间,对于1240像素,这个数字是40像素,我想,它是用一些不必是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 step不同。 –
除了你的问题,你为什么不''var randomnumber = 1 + Math.floor(Math.random()* 3);'而不是do循环?似乎更有效率。 – Andy