Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Math.random и добавление блоков (https://javascript.ru/forum/misc/39685-math-random-i-dobavlenie-blokov.html)

IVAAAAN 08.07.2013 11:31

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

skrudjmakdak 08.07.2013 11:39

а вы в цикле меняйте:
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;

???

ruslan_mart 08.07.2013 11:41

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');

skrudjmakdak 08.07.2013 11:49

Ruslan_xDD, первый ваш варик мне больше нравится)) ибо писать все в одну строчку.. фууу)))

IVAAAAN 08.07.2013 13:16

И еще, чтобы не создавать новый сабж. Вот я генерирую блоки так
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, время: 16:03.