Math.random и добавление блоков
Генерирую 3 случайных числа, но они получаются одинаковые:
numMarginTop= Math.floor(Math.random() * (500 - 50 + 1)) + 50; numMarginLeft= Math.floor(Math.random() * (500 - 50) + 1) + 50; numMarginRight= Math.floor(Math.random() * (500 - 50 + 1)) + 50; А затем добавляю в цикле 2 блока с margin`ами этих чисел. $(".num" +i).css({ 'margin-top': numMarginTop, 'margin-left': numMarginLeft, 'margin-right': numMarginRight, }); блоки получаются на одной и той же координате. Типо так: 5 5 А нужно типо так: 5 5 |
а вы в цикле меняйте:
numMarginTop= Math.floor(Math.random() * (500 - 50 + 1)) + 50; numMarginLeft= Math.floor(Math.random() * (500 - 50) + 1) + 50; numMarginRight= Math.floor(Math.random() * (500 - 50 + 1)) + 50; ??? |
function rand(){ return Math.floor(Math.random() * (500 - 50 + 1)) + 50; } for(i=0; i<10; i++) $(".num" +i).css({ 'margin-top': rand(), 'margin-left': rand(), 'margin-right': rand(), }); Или вообще так: function rand(){ return Math.floor(Math.random() * (500 - 50 + 1)) + 50; } for(i=0; i<10; i++) $(".num" +i).css('margin', rand()+' '+rand()+' '+rand()+' auto'); |
Ruslan_xDD, первый ваш варик мне больше нравится)) ибо писать все в одну строчку.. фууу)))
|
И еще, чтобы не создавать новый сабж. Вот я генерирую блоки так
var level, size; level = 1; for(var i = level;i<level+4;i++){ $("#game_area").append('<div class="num'+i+'"><p class="numValue'+i+'">'+rand(1,10)+'</p></div>'); size = rand(50,100); margin = rand(1,120); marginLeft = rand(1, 300); $(".num" +i).css({ 'width':size, 'height':size, 'border-radius':size + 1, 'margin-top':margin, 'margin-left':marginLeft, 'border':'1px solid #000', 'text-align': 'center', 'cursor': ' pointer' }); $(".numValue").css({ 'padding':rand(50,100)/5 }); } Но случается когда они вылазят за нужною мне область, этом случае #game_area, не могу никак рассчитать чтобы они не вылазили, помогите |
Часовой пояс GMT +3, время: 14:16. |