Gewusst wie: hinzufügen konami-code in eine website auf html-Basis?
Wurde ich gebeten, zur Umsetzung der Konami-Code
in eine website, die ich gerade arbeite, auf. Es sollte Folgendes tun:
-
Ändern Hintergrund Bild
-
Sound Abspielen
-
Bringen einige pop-up -
Was ist der einfachste Weg, dies zu erreichen mit javascript?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Platzieren Sie den folgenden code in eine Datei
js/konami.js
und verweisen es in den Körper Ihres html-Datei wie folgt:<script src="js/konami.js"></script>
JS:
BEARBEITEN: verändert die Reihenfolge von b, a anstelle von a, b. Vielen Dank für den Kommentar!
EDIT 2: reset der konamiCodePosition zu 0 nach activateCheats genannt wurde. Vielen Dank für den Kommentar!
konamiCodePosition = 0
nach dem AufrufactivateCheats()
zu ermöglichen, aufeinanderfolgende Ausführung und vermeiden eine Ausnahme bei der indexer 'konamiCode[]'konamiCodePosition = 0
imelse
block. Stattdessen sollte es zurückgesetzt auf " 1 "in meinem Beispiel-input, da falscher Schlüssel (Dritte "up") ist auch die richtige erste Schlüssel. @w.stoettingerkompakte version:
JS:
38
für Pfeil,38384040
bedeutet, bis hinunter, jedes mal, wenn Benutzer drücken Sie die Taste, füge ich den key-code als string ininput
variable.return cb();
bedeutet: rufen Sie die callback-Funktion, und lassen Siecb(); return;
würde den gleichen Effekt, aber dieser ist kürzer. nächste Zeile ich prüfeinput
ist Teil derkey
indexOf
Funktion zurückkehren sollte0
in unserem Fall!
konvertieren0
zutrue
wenninput
Teil derkey
wir sollten wieder zurück, und die Letzte Zeile nur setzen Sie dieinput
und fügen Sie den charcode, um esMeine eigenen kompakten und gereinigt-version inspiriert von den Antworten hier:
In diesem Fall, die
activate()
Funktion wird aufgerufen, wenn Sie ausgelöst werden.Silentdrummer hat eine gute Antwort. Ich bin mir nicht ganz sicher, aber ich denke, es könnte am Ende zu viel Speicher auf der Eingabe intensive Seiten. Es ist gute Praxis, um Sie zurückzusetzen. So oder so, hier ist eine alternative.
Dies ist eine Lösung, die ich kam mit etwa 3 oder 4 Jahren. In meinem Fall wählte ich keyUp zu halten, getrennt von allen Aktionen, die aus keyDown Veranstaltungen.
Auch gibt es keine Notwendigkeit, um anzugeben, welche Schlüssel sind zulässig, da die for-Schleife prüft, welche losgelassen wurde gegen alle Tasten auf der Tastatur.
Ich mochte die Antwort des Petrus, also machte ich es mit Namespaces und machte den Rückruf, optional. Ich auch jquery, da ich es mag \_(ツ)_/
JS:
HTML:
als Typoskript Modul
Umsetzung:
Konami.start(() => { alert("konami sequence entered!"); });
Hinweise: SEQUENZ ist ein array der erwarteten Eingänge. mithilfe der
head
var, die Bestellung überprüfen und die Anzahl der richtigen Eingaben erhalten. es bietet auch eine einfache Möglichkeit, neu zu starten, wenn der Eingang weicht von der Reihenfolge. es entfällt auch der Bedarf für einen "count" var.Erstellen Sie Ihre eigenen "Konami-Code" fügen Sie den folgenden Code-snippet in den HTML-Code ein.
PS: Ändern Sie die const secretCode ... was immer Sie wollen :). Mit dem aktuellen code eingeben 'Pfeil oben' - Taste, dann 'h' dann 'ich' und nicht zuletzt die 'Pfeil nach unten' - Taste.
Fragen? Fragen Sie bitte nach.