Как использовать Math.random () для распределения трех изображений на три элемента img? - PullRequest
0 голосов
/ 12 ноября 2010

У меня 3 изображения. 1.jpg, 2.jpg, 3.jpg. Я хочу распределить их по трем img элементам случайным образом (при обновлении окна положение трех изображений изменится).
Как мне использовать Math.random() здесь? Спасибо.

<img src='' id='img1' />
<img src='' id='img2' />
<img src='' id='img3' />

Ответы [ 3 ]

3 голосов
/ 12 ноября 2010

Вы можете перемешать созданный вами массив:

var arr = ["1.jpg", "2.jpg", "3.jpg"];
arr.sort(function() {return 0.5 - Math.random()});

Некоторые люди предпочитают другие способы перетасовки , но метод перестановки будет работать, чтобы гарантировать, что вы получите все элементы только один раз в результирующем массиве.

2 голосов
/ 12 ноября 2010

Существует шесть различных способов добавления изображений в теги. Выберите один из них, используя случайный:

var index = Math.floor(Math.random()*6);
var ids = [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]][index];
document.getElementById('img'+ids[0]).src = '1.jpg';
document.getElementById('img'+ids[1]).src = '2.jpg';
document.getElementById('img'+ids[2]).src = '3.jpg';
1 голос
/ 12 ноября 2010
Math.floor(Math.random()*3)+1;

Но распределение не будет равномерным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...