2013-03-18 7 views
0

Как получить этот скрипт для вставки всех изображений, а не только из одного из них? Я просто хочу, чтобы он вставлял все изображения случайно.Shuffle images javascript/jquery

<script type="text/javascript"> 
    var images = ['basketball.jpg', 'running.jpg', 'tennis.jpg', 'running-woman.jpg', 'swimming.jpg', 'cycling.jpg']; 
$('<img src="images/large/' + images[Math.floor(Math.random() * images.length)] + '">').appendTo('#images'); 
</script> 
+0

Возможно, вам нужно зациклиться на нем –

+0

Пожалуйста, покажите нам, что вы пробовали до сих пор. –

ответ

4

Чтобы сохранить порядок вставки случайных используйте время цикла:

<script type="text/javascript"> 
    var images = ['basketball.jpg', 'running.jpg', 'tennis.jpg', 'running-woman.jpg', 'swimming.jpg', 'cycling.jpg']; 

    while (images.length !== 0) { 
     var index = Math.floor(Math.random() * images.length); 
     $('<img src="images/large/' + images.splice(index, 1) + '">').appendTo('#images'); 
    } 
</script> 
+0

Добро пожаловать, обязательно примите, если это поможет;) приветствует. – Oliver

1

использование нужно использовать цикл, чтобы добавить все изображения ....

<script type="text/javascript"> 
    var images = ['basketball.jpg', 'running.jpg', 'tennis.jpg', 'running-woman.jpg', 'swimming.jpg', 'cycling.jpg']; 

    $.each(images,function(i,v){ 
    $('<img src="images/large/' + images[i] + '">').appendTo('#images'); 
    }); 
</script> 
+0

Это не добавит изображения в случайном порядке, см. Мой ответ. – Oliver

0
<script type="text/javascript"> 
    var images = ['basketball.jpg', 'running.jpg', 'tennis.jpg', 'running-woman.jpg', 'swimming.jpg', 'cycling.jpg']; 

    for(var i=0;i<images.length;i++) 
    $('<img src="images/large/' + images[i] + '">').appendTo('#images'); 

</script> 
0

Ваш код выбирает изображение, а затем отображает его. Вам нужно реорганизовать его, чтобы он выполнял это несколько раз.

Во-первых, разбить операции:

var images = ... // fill array 

    pick = Math.floor(Math.random() * images.length); // choose image 

    tag = '<img src="images/large/' + images[pick] + '>'; // make tag 

    $(tag).appendTo('#images'); // add tag 

Затем установите в цикле повторять до тех пор, пока массив не будет исчерпан:

var images = ... // fill array 

    while (images.length>0) { 
     pick = Math.floor(Math.random() * images.length); // choose image 
     tag = '<img src="images/large/' + images[pick] + '>'; // make tag 
     images = images.splice(i,1); // take picked image out of array 
     $(tag).appendTo('#images'); // add tag 
    } 

Я не выбежала это, убедитесь, что массив индексы, которые я использую для «сращивания», правильны, чтобы извлечь одно изображение и вынуть правильный из массива. Вы также можете захватить функцию удаления Array, например. от http://ejohn.org/blog/javascript-array-remove/

0

Вы можете использовать алгоритм Fisher Yates Перемешать перетасовать изображения в JavaScript

Вы можете хранить свою коллекцию изображений в массиве .. Как показано в следующем коде, вы можете передать массив в функцию и постройте свой тасовку :)

def fisherYatesShuffle(array): 
if len(array) < 2: 
    return 

firstElementIndex = uniform(0, len(array)) 
swap(array[0], array[firstElementIndex]) 
fisherYatesShuffle(array[1:])