Мне нужно знать немного больше о проблеме, чтобы решить, как мне это сделать, но вот некоторые идеи, которые могут работать.
Если все изображения имеют одинаковый размер, вы должны быть в состоянии сделать что-то, используя модуль, например, randomTop = (500 * Math.random()) % picWidth
.
Конечно, вам нужно отслеживать, какие слоты вы уже использовали, поэтому, если массив картинок будет плотным, я, вероятно, добавлю слоты в случайный массив и проведу по нему все.
var slots = [];
for (var y = 0; y < 5; y++)
{
for (var x = 0; x < 5; x++)
{
slots.push([x, y]);
}
}
slots.sort(function () { return (0.5 - Math.random()); });
$('.friend-selection li > div').each(function() { ... }
(Обратите внимание, что случайный метод, который я использовал , не так уж велик .)
Если изображения не имеют фиксированного размера, вещи становятся болеесложно.Я бы начал с jQuery Masonry для кода, идей или даже полного решения.