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?
mit dieser Funktion beendet (Danke, Blair!) -
%Vor%Also müssen Sie nur noch das Skript hinzufügen und die Shuffle-Funktion aufrufen:
%Vor%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%Sie können auch den häufig verwendeten JavaScript Array Randomize-Sortierer verwenden, der auch kommentierte hier und hier :
%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.
Tags und Links javascript jquery random order gallery