JavaScript-Tippspiel

JavaScript-Tippspiel

In diesem Artikel wird der spezifische JavaScript-Code zur Implementierung von Tippspielen zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

Effektbild:

Bedarfsanalyse:

1. Zeigen Sie die in das Char-Div einzugebenden Buchstaben in Großbuchstaben an
2. Zeigen Sie im Ergebnis-Div immer die Genauigkeitsrate an, z. B. 98 %
3. Verknüpfen Sie wichtige Ereignisse mit Dokumenten
4. Wenn der Eingabeinhalt mit dem Zeichen übereinstimmt, wird die richtige Animation angezeigt: animiertes ZoomIn und der eingegebene Buchstabe wird ersetzt
5. Wenn der Eingabeinhalt nicht mit dem Zeichen übereinstimmt, wird eine Fehleranimation angezeigt: animierter Shake-Fehler
6. Unabhängig davon, ob es richtig oder falsch ist, wird die Genauigkeitsrate im Ergebnis von Zeit zu Zeit aktualisiert

Quelltext:

HTML-Teil

<mian>
 <div id="char">A</div>
 <div id="result">Bitte drücken Sie den auf dem Bildschirm angezeigten Buchstaben</div>
</mian>

CSS-Teil

1. Um einige Spezialeffekte zu erzielen, erstellen Sie zunächst eine animate.css-Datei und kapseln Sie einige Animationseffekte darin ein

/*animieren.css*/
.animiert {
 -Webkit-Animationsdauer: 1 s;
 Animationsdauer: 1 s;
 -webkit-animation-fill-mode: beides;
 Animationsfüllmodus: beides;
}

.animiert.unendlich {
 -webkit-animation-iteration-count: unendlich;
 Anzahl der Animationsiterationen: unendlich;
}

.animiertes.Scharnier {
 -Webkit-Animationsdauer: 2 s;
 Animationsdauer: 2s;
}

.animiert.flipOutX,
.animiert.flipOutY,
.animiert.bounceIn,
.animiert.bounceOut {
 -Webkit-Animationsdauer: 0,75 s;
 Animationsdauer: 0,75 s;
}
@-webkit-keyframes zoomIn {
 aus {
 Deckkraft: 0;
 -webkit-transform: scale3d(.3, .3, .3);
 transformieren: scale3d(.3, .3, .3);
 }

 50 % {
 Deckkraft: 1;
 }
}

@keyframes zoomIn {
 aus {
 Deckkraft: 0;
 -webkit-transform: scale3d(.3, .3, .3);
 transformieren: scale3d(.3, .3, .3);
 }

 50 % {
 Deckkraft: 1;
 }
}

.zoomIn {
 -webkit-animation-name: zoomIn;
 Animationsname: zoomIn;
}
  .animiert {
 -Webkit-Animationsdauer: 1 s;
 Animationsdauer: 1 s;
 -webkit-animation-fill-mode: beides;
 Animationsfüllmodus: beides;
}
@-webkit-keyframes schütteln {
 von, bis
 -webkit-transform: übersetzen3d(0, 0, 0);
 transformieren: übersetzen3d(0, 0, 0);
 }

 10 %, 30 %, 50 %, 70 %, 90 % {
 -webkit-transform: übersetzen3d(-10px, 0, 0);
 transformieren: übersetzen3d(-10px, 0, 0);
 }

 20 %, 40 %, 60 %, 80 % {
 -webkit-transform: übersetzen3d(10px, 0, 0);
 transformieren: übersetzen3d(10px, 0, 0);
 }
}

@keyframes schütteln {
 von, bis
 -webkit-transform: übersetzen3d(0, 0, 0);
 transformieren: übersetzen3d(0, 0, 0);
 }

 10 %, 30 %, 50 %, 70 %, 90 % {
 -webkit-transform: übersetzen3d(-10px, 0, 0);
 transformieren: übersetzen3d(-10px, 0, 0);
 }

 20 %, 40 %, 60 %, 80 % {
 -webkit-transform: übersetzen3d(10px, 0, 0);
 transformieren: übersetzen3d(10px, 0, 0);
 }
}

.schütteln {
 -webkit-animation-name: schütteln;
 Animationsname: Shake;
}

2.css-Hauptcode, keine Version mit Animationseffekten

<Stil>
 Körper {
  Rand: 0;
  /*Aktiviere das elastische Layout und richte die Unterelemente im elastischen Layout horizontal und vertikal in der Mitte aus*/
  Anzeige: Flex;
  Inhalt ausrichten: zentriert;
  Elemente ausrichten: zentrieren;
  /*Text zentrieren*/
  Textausrichtung: zentriert;
  /*Farbverlauf für den Hintergrund festlegen*/
  Hintergrund: radialer Farbverlauf (Kreis, Nr. 444, Nr. 111, Nr. 000);
 }

 #char {
  Schriftgröße: 400px;
  Farbe: hellgrün;
  /*Textschatten setzen*/
  /*text-shadow: horizontale Position vertikale Position Unschärfe Abstand Schatten Farbe*/
  /*Position kann negativ sein*/
  Textschatten: 0 0 50px #666;
 }

 #Ergebnis {
  Schriftgröße: 20px;
  Farbe: #888;
 }

 /*Suche das Div-Element mit der ID char und dem Klassennamen error*/
 #char.error {
  Farbe: rot;
 }
</Stil>

JavaScript

1. Um den Code zu vereinfachen, kapseln Sie zunächst einige häufig verwendete benutzerdefinierte Konstruktoren

<Skript>
// Definieren Sie eine Funktion: rand
// Parameter: minimale Ganzzahl, maximale Ganzzahl // Rückgabewert: eine zufällige Ganzzahl zwischen zwei Ganzzahlen Funktion rand(min, max) {
 gibt parseInt(Math.random() * (max - min + 1)) + min zurück;
} 
</Skript>

2. Im Hauptteil von js müssen Sie die gekapselte Funktion verwenden und aufrufen

<Skript>
 // Das relevante Element abrufen var charDiv = document.getElementById('char');
 var resultDiv = document.getElementById('Ergebnis');

 // Code wird verwendet, um den Code der Buchstaben auf der Seite aufzuzeichnen. Verwenden Sie globale Variablen und Sie können ihn überall verwenden. var code, tirme;

 var rightNum = 0;//Richtige Zahl var wrongNum = 0;//Falsche Zahl // 1 Zeige den im Char-Div einzugebenden Buchstaben in Großbuchstaben an showChar();
 // 3 Tastenereignisse an das Dokument binden document.onkeyup = function (e) {
 // Ereignisobjekt e = window.event || e;
 // Schlüsselcode abrufen var keyCode = e.keyCode || e.which;
 // 4 Wenn der Eingabeinhalt mit dem Zeichen übereinstimmt, if (keyCode == code) {
  //Zeige die richtige Animation: animiertes ZoomIn
  charDiv.className = "animiertes ZoomIn";
  rechteNum++;
  Zeichen anzeigen()
 }
 // 5 Wenn der Eingabeinhalt nicht mit char übereinstimmt, sonst {
  // Fehleranimation anzeigen: animierter Shake-Fehler
  charDiv.className = "animierter Shake-Fehler";
  falscheZahl++
 }
 // Um ​​beim nächsten Mal eine Animation zu haben, entferne den Klassennamen, nachdem diese Animation beendet ist setTimeout(function () {
  charDiv.Klassenname = "";
 }, 500)
 // 6 Unabhängig davon, ob es richtig oder falsch ist, wird die Genauigkeitsrate im Ergebnis von Zeit zu Zeit aktualisiert // Genauigkeitsrate = richtige Zeiten / Gesamtzeiten resultDiv.innerHTML = "Genauigkeitsrate:" + parseInt(rightNum / (rightNum + wrongNum) * 100) + "%"

 }
 // Funktion: Zufällige Anzeige der im Char-Div einzutragenden Buchstaben: uppercase function showChar() {
  // Zuerst zufällig einen Buchstabencode auswählen code = rand(65, 90);
  // In einen Buchstaben umwandeln var char = String.fromCharCode(code);
  // Im Char-Div anzeigen charDiv.innerHTML = char;
 }
</Skript>

Gesamtcode

<html>

<Kopf>
 <meta charset="utf-8">
 <title>Tippspiel</title>
 <!--Animationsbibliothek animate.css einführen-->
 <link rel="stylesheet" href="animate.css" >
 <Stil>
 Körper {
  Rand: 0;
  /*Aktiviere das elastische Layout und richte die Unterelemente im elastischen Layout horizontal und vertikal in der Mitte aus*/
  Anzeige: Flex;
  Inhalt ausrichten: zentriert;
  Elemente ausrichten: zentrieren;
  /*Text zentrieren*/
  Textausrichtung: zentriert;
  /*Farbverlauf für den Hintergrund festlegen*/
  Hintergrund: radialer Farbverlauf (Kreis, Nr. 444, Nr. 111, Nr. 000);
 }

 #char {
  Schriftgröße: 400px;
  Farbe: hellgrün;
  /*Textschatten setzen*/
  /*text-shadow: horizontale Position vertikale Position Unschärfe Abstand Schatten Farbe*/
  /*Position kann negativ sein*/
  Textschatten: 0 0 50px #666;
 }

 #Ergebnis {
  Schriftgröße: 20px;
  Farbe: #888;
 }

 /*Suche das Div-Element mit der ID char und dem Klassennamenfehler*/
 #char.error {
  Farbe: rot;
 }
 </Stil>
</Kopf>

<Text>
 <mian>
 <div id="char">A</div>
 <div id="result">Bitte drücken Sie den auf dem Bildschirm angezeigten Buchstaben</div>
 </mian>
</body>

</html>
<Skript>
 // Definieren Sie eine Funktion: rand
 // Parameter: minimale Ganzzahl, maximale Ganzzahl // Rückgabewert: eine zufällige Ganzzahl zwischen zwei Ganzzahlen Funktion rand(min, max) {
 gibt parseInt(Math.random() * (max - min + 1)) + min zurück;
 }
</Skript>
<Skript>
 // Das relevante Element abrufen var charDiv = document.getElementById('char');
 var resultDiv = document.getElementById('Ergebnis');

 // Code wird verwendet, um den Code der Buchstaben auf der Seite aufzuzeichnen. Verwenden Sie globale Variablen und Sie können ihn überall verwenden. var code, tirme;

 var rightNum = 0;//Richtige Zahl var wrongNum = 0;//Falsche Zahl // 1 Zeige den im Char-Div einzugebenden Buchstaben in Großbuchstaben an showChar();
 // 3 Tastenereignisse an das Dokument binden document.onkeyup = function (e) {
 // Ereignisobjekt e = window.event || e;
 // Schlüsselcode abrufen var keyCode = e.keyCode || e.which;
 // 4 Wenn der Eingabeinhalt mit dem Zeichen übereinstimmt, if (keyCode == code) {
  //Zeige die richtige Animation: animiertes ZoomIn
  charDiv.className = "animiertes ZoomIn";
  rechteNum++;
  Zeichen anzeigen()
 }
 // 5 Wenn der Eingabeinhalt nicht mit char übereinstimmt, sonst {
  // Fehleranimation anzeigen: animierter Shake-Fehler
  charDiv.className = "animierter Shake-Fehler";
  falscheZahl++
 }
 // Um ​​beim nächsten Mal eine Animation zu haben, entferne den Klassennamen, nachdem diese Animation beendet ist setTimeout(function () {
  charDiv.Klassenname = "";
 }, 500)
 // 6 Unabhängig davon, ob es richtig oder falsch ist, wird die Genauigkeitsrate im Ergebnis von Zeit zu Zeit aktualisiert // Genauigkeitsrate = richtige Zeiten / Gesamtzeiten resultDiv.innerHTML = "Genauigkeitsrate:" + parseInt(rightNum / (rightNum + wrongNum) * 100) + "%"

 }
 // Funktion: Zufällige Anzeige der im Char-Div einzutragenden Buchstaben: uppercase function showChar() {
  // Zuerst zufällig einen Buchstabencode auswählen code = rand(65, 90);
  // In einen Buchstaben umwandeln var char = String.fromCharCode(code);
  // Im Char-Div anzeigen charDiv.innerHTML = char;
 }
</Skript>

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Natives JS zur Implementierung eines Klickzahlenspiels
  • Implementierung eines Puzzlespiels mit js
  • js um das Schlangenspiel mit Kommentaren zu implementieren
  • Natives JS zur Implementierung des Spiels 2048
  • JavaScript-Puzzlespiel
  • Natives JS implementiert ein Minesweeper-Spiel mit benutzerdefiniertem Schwierigkeitsgrad
  • js Canvas zur Realisierung des Gobang-Spiels
  • So verwenden Sie JavaScript zum Schreiben eines Kampfspiels
  • Implementierung eines einfachen Minesweeper-Spiels basierend auf JavaScript
  • JavaScript-Implementierung des Spiels des Lebens

<<:  So installieren Sie Docker auf CentOS

>>:  Detaillierte Beispiele zur Konvertierung von Zeilen in Spalten und Spalten in Zeilen in MySQL

Artikel empfehlen

Details zur Verwendung von Bimface in Vue

Inhaltsverzeichnis 1. Installieren Sie das Vue-Ge...

Detaillierte Erklärung von count(), group by, order by in MySQL

Ich bin vor Kurzem auf ein Problem gestoßen, als ...

Einfache Schritte zum Schreiben benutzerdefinierter Anweisungen in Vue3.0

Vorwort Vue bietet eine Fülle integrierter Anweis...

Übung zum Hochladen von Element-Avataren

Dieser Artikel verwendet die offizielle Element-W...

Verwenden Sie HTML, um eine einfache E-Mail-Vorlage zu schreiben

Heute möchte ich über ein „Low-Tech“-Problem schr...

Detaillierte Schritte zum Erstellen eines Vue-Scaffolding-Projekts

Vue-Gerüst -> vue.cli Erstellen Sie schnell ei...

Lösung für das Problem des Sitzungsverlusts bei Nginx

Bei der Verwendung von Nginx als Reverse-Proxy fü...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.15

In diesem Artikel wird die Installations- und Kon...

Dieser Artikel zeigt Ihnen, wie Sie Vue 3.0 responsive verwenden

Inhaltsverzeichnis Anwendungsfälle Reaktive API-b...

Der Unterschied zwischen ENTRYPOINT und CMD in Dockerfile

Im Lernprogramm zum Docker-System haben wir geler...

Tutorial zur Optimierung der Installationskonfiguration von MySQL 8.0.18

Die Installation, Konfiguration und Optimierung v...