jquery Elemente in eine zufällige Reihenfolge bewegen

8

Ich versuche, eine Reihe von Bildern in zufälliger Reihenfolge anzuzeigen. Ich möchte jedoch nicht, dass ein einzelnes Objekt wiederholt wird, bis alle Elemente angezeigt wurden. Anstatt also ein zufälliges Bild aus dem Array auszuwählen, möchte ich das gesamte Array nehmen, es randomisieren und dann nacheinander vom ersten bis zum nächsten auswählen Letztes Element. Hier ist mein Code:

HTML:

%Vor%

und das Javascript, das derzeit die Elemente in der richtigen Reihenfolge auswählt und anzeigt:

%Vor%

Wie ordne ich also die tatsächliche Reihenfolge der Bilder an und nicht nur die Reihenfolge, in der sie ausgewählt sind?

    
mheavers 16.03.2011, 17:25
quelle

4 Antworten

5

mit dieser Funktion beendet (Danke, Blair!) -

%Vor%

Also müssen Sie nur noch das Skript hinzufügen und die Shuffle-Funktion aufrufen:

%Vor%     
mheavers 16.03.2011, 17:48
quelle
13

Nach vielen Erkundungen habe ich mich entschieden, den fisher-yates-Algorithmus zu verwenden und ihn mit jquery anzuwenden, ohne Klonen usw. zu benötigen.

%Vor%     
chad steele 27.03.2013 19:23
quelle
7

Sie können auch den häufig verwendeten JavaScript Array Randomize-Sortierer verwenden, der auch kommentierte hier und hier :

%Vor%     
fguillen 22.08.2011 17:39
quelle
0
%Vor%

Erklärung: Normalerweise haben Sie "return (a-b)", was eine positive Zahl für die aufsteigende Sortierreihenfolge ergibt; oder Sie haben "return (b-a)", was eine negative Zahl für die absteigende Sortierreihenfolge ergibt.

Hier verwenden wir Math.random () - 0.5, was in der Hälfte der Fälle eine positive Zahl und in der Hälfte der Fälle eine negative Zahl ergibt. Daher ist das Sortieren von Paaren entweder aufsteigend oder absteigend, was zu einer zufälligen Verteilung der Array-Elemente führt.

    
Stefan Gruenwald 29.10.2013 04:45
quelle