tools:tonhoehentrainer
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
| tools:tonhoehentrainer [19/05/2025 17:47] – angelegt Eric Weber | tools:tonhoehentrainer [20/05/2025 08:42] (aktuell) – Eric Weber | ||
|---|---|---|---|
| Zeile 5: | Zeile 5: | ||
| < | < | ||
| < | < | ||
| - | | + | |
| font-family: | font-family: | ||
| max-width: 800px; | max-width: 800px; | ||
| Zeile 12: | Zeile 12: | ||
| background-color: | background-color: | ||
| } | } | ||
| - | h1, h2 { | + | |
| color: #333; | color: #333; | ||
| text-align: center; | text-align: center; | ||
| } | } | ||
| - | .container { | + | |
| background-color: | background-color: | ||
| border-radius: | border-radius: | ||
| Zeile 23: | Zeile 23: | ||
| margin-bottom: | margin-bottom: | ||
| } | } | ||
| - | .settings { | + | |
| display: flex; | display: flex; | ||
| flex-direction: | flex-direction: | ||
| gap: 15px; | gap: 15px; | ||
| } | } | ||
| - | .difficulty-options { | + | |
| display: flex; | display: flex; | ||
| gap: 10px; | gap: 10px; | ||
| Zeile 34: | Zeile 34: | ||
| margin: 10px 0; | margin: 10px 0; | ||
| } | } | ||
| - | .difficulty-btn { | + | |
| padding: 10px 15px; | padding: 10px 15px; | ||
| border: none; | border: none; | ||
| Zeile 41: | Zeile 41: | ||
| font-weight: | font-weight: | ||
| transition: background-color 0.3s; | transition: background-color 0.3s; | ||
| + | background-color: | ||
| } | } | ||
| - | .difficulty-btn.active { | + | |
| background-color: | background-color: | ||
| - | color: | + | color: |
| } | } | ||
| - | .start-btn { | + | |
| background-color: | background-color: | ||
| - | color: | + | color: |
| padding: 12px 20px; | padding: 12px 20px; | ||
| border: none; | border: none; | ||
| Zeile 58: | Zeile 59: | ||
| display: block; | display: block; | ||
| } | } | ||
| - | .play-tones-btn { | + | |
| background-color: | background-color: | ||
| - | color: | + | color: |
| padding: 12px 20px; | padding: 12px 20px; | ||
| border: none; | border: none; | ||
| Zeile 70: | Zeile 71: | ||
| display: block; | display: block; | ||
| } | } | ||
| - | .answer-btns { | + | |
| display: flex; | display: flex; | ||
| justify-content: | justify-content: | ||
| Zeile 76: | Zeile 77: | ||
| margin: 20px 0; | margin: 20px 0; | ||
| } | } | ||
| - | .answer-btn { | + | |
| padding: 15px 30px; | padding: 15px 30px; | ||
| border: none; | border: none; | ||
| Zeile 85: | Zeile 86: | ||
| transition: background-color 0.3s; | transition: background-color 0.3s; | ||
| } | } | ||
| - | .higher-btn { | + | |
| background-color: | background-color: | ||
| } | } | ||
| - | .lower-btn { | + | |
| background-color: | background-color: | ||
| } | } | ||
| - | .correct { | + | |
| - | background-color: | + | background-color: |
| - | color: | + | color: |
| } | } | ||
| - | .incorrect { | + | |
| - | background-color: | + | background-color: |
| - | color: | + | color: |
| } | } | ||
| - | .progress { | + | |
| display: flex; | display: flex; | ||
| justify-content: | justify-content: | ||
| margin-top: 20px; | margin-top: 20px; | ||
| } | } | ||
| - | .progress-dots { | + | |
| display: flex; | display: flex; | ||
| gap: 10px; | gap: 10px; | ||
| margin-bottom: | margin-bottom: | ||
| } | } | ||
| - | .dot { | + | |
| width: 20px; | width: 20px; | ||
| height: 20px; | height: 20px; | ||
| Zeile 115: | Zeile 116: | ||
| background-color: | background-color: | ||
| } | } | ||
| - | .dot.correct { | + | |
| background-color: | background-color: | ||
| } | } | ||
| - | .dot.incorrect { | + | |
| background-color: | background-color: | ||
| } | } | ||
| - | .dot.current { | + | |
| border: 2px solid #2196F3; | border: 2px solid #2196F3; | ||
| } | } | ||
| - | .stats { | + | |
| text-align: center; | text-align: center; | ||
| font-weight: | font-weight: | ||
| margin-top: 10px; | margin-top: 10px; | ||
| } | } | ||
| - | .hidden { | + | |
| display: none; | display: none; | ||
| } | } | ||
| - | .cancel-btn { | + | |
| background-color: | background-color: | ||
| - | color: | + | color: |
| padding: 10px 15px; | padding: 10px 15px; | ||
| border: none; | border: none; | ||
| Zeile 144: | Zeile 145: | ||
| margin: 10px auto; | margin: 10px auto; | ||
| } | } | ||
| - | .result-message { | + | |
| text-align: center; | text-align: center; | ||
| font-size: 18px; | font-size: 18px; | ||
| Zeile 150: | Zeile 151: | ||
| font-weight: | font-weight: | ||
| } | } | ||
| - | .audio-status { | + | |
| text-align: center; | text-align: center; | ||
| margin: 10px 0; | margin: 10px 0; | ||
| Zeile 157: | Zeile 158: | ||
| border-radius: | border-radius: | ||
| } | } | ||
| - | .difficulty-description { | + | |
| font-size: 14px; | font-size: 14px; | ||
| text-align: center; | text-align: center; | ||
| Zeile 163: | Zeile 164: | ||
| color: #666; | color: #666; | ||
| } | } | ||
| - | .next-btn { | + | |
| background-color: | background-color: | ||
| - | color: | + | color: |
| padding: 10px 15px; | padding: 10px 15px; | ||
| border: none; | border: none; | ||
| Zeile 174: | Zeile 175: | ||
| display: inline-block; | display: inline-block; | ||
| } | } | ||
| - | #retry-next { | + | |
| text-align: center; | text-align: center; | ||
| } | } | ||
| Zeile 180: | Zeile 181: | ||
| </ | </ | ||
| < | < | ||
| - | < | + | |
| - | + | | |
| - | <div class=" | + | |
| - | < | + | <div class=" |
| - | < | + | < |
| - | < | + | < |
| - | <div class=" | + | < |
| - | <button class=" | + | <div class=" |
| - | <button class=" | + | <button class=" |
| - | <button class=" | + | <button class=" |
| + | <button class=" | ||
| + | </ | ||
| + | <div class=" | ||
| + | Große Terz (maximal 4 Halbtöne Unterschied) | ||
| + | </div> | ||
| </ | </ | ||
| - | < | + | < |
| - | | + | |
| </ | </ | ||
| + | <button id=" | ||
| </ | </ | ||
| - | <div id=" | ||
| - | Bitte klicke hier um Audio zu aktivieren | ||
| - | </ | ||
| - | <button id=" | ||
| - | </ | ||
| - | | + | |
| - | <button id=" | + | <button id=" |
| - | + | ||
| - | <div class=" | + | <div class=" |
| - | <button id=" | + | <button id=" |
| - | <button id=" | + | <button id=" |
| + | </ | ||
| + | |||
| + | <div id=" | ||
| + | <button id=" | ||
| + | <button id=" | ||
| + | </ | ||
| + | |||
| + | <div class=" | ||
| + | <div class=" | ||
| + | </ | ||
| + | <div class=" | ||
| + | Frage 1 von 10 | Richtig: 0% | Falsch: 0% | ||
| + | </ | ||
| + | |||
| + | <button id=" | ||
| </ | </ | ||
| | | ||
| - | <div id="retry-next" class=" | + | <div id="final-result" class=" |
| - | <button id="retry-btn" | + | <h2> |
| - | <button id="next-btn" class=" | + | <div class="result-message" |
| + | <button id="restart-btn" class=" | ||
| </ | </ | ||
| - | | ||
| - | <div class=" | ||
| - | <div class=" | ||
| - | </ | ||
| - | <div class=" | ||
| - | Frage 1 von 10 | Richtig: 0% | Falsch: 0% | ||
| - | </ | ||
| - | | ||
| - | <button id=" | ||
| - | </ | ||
| - | | ||
| - | <div id=" | ||
| - | < | ||
| - | <div class=" | ||
| - | <button id=" | ||
| </ | </ | ||
| Zeile 256: | Zeile 259: | ||
| | | ||
| // Schwierigkeitsgrad-Buttons | // Schwierigkeitsgrad-Buttons | ||
| - | const difficultyBtns = document.querySelectorAll(' | + | const difficultyBtns = document.querySelectorAll(' |
| | | ||
| // Variablen für das Spiel | // Variablen für das Spiel | ||
| Zeile 283: | Zeile 286: | ||
| // Schwierigkeitsgradbeschreibungen | // Schwierigkeitsgradbeschreibungen | ||
| const difficultyDescriptions = { | const difficultyDescriptions = { | ||
| - | ' | + | ' |
| - | ' | + | ' |
| - | ' | + | ' |
| }; | }; | ||
| | | ||
| Zeile 491: | Zeile 494: | ||
| // UI aktualisieren | // UI aktualisieren | ||
| testArea.classList.remove(' | testArea.classList.remove(' | ||
| - | document.querySelector(' | + | document.querySelector(' |
| finalResult.classList.add(' | finalResult.classList.add(' | ||
| retryNextDiv.classList.add(' | retryNextDiv.classList.add(' | ||
| Zeile 507: | Zeile 510: | ||
| function cancelTest() { | function cancelTest() { | ||
| testArea.classList.add(' | testArea.classList.add(' | ||
| - | document.querySelector(' | + | document.querySelector(' |
| } | } | ||
| | | ||
| Zeile 602: | Zeile 605: | ||
| correctAnswers++; | correctAnswers++; | ||
| higherBtn.classList.add(' | higherBtn.classList.add(' | ||
| + | lowerBtn.classList.remove(' | ||
| | | ||
| // Bei richtiger Antwort nach 1 Sekunde automatisch zur nächsten Frage | // Bei richtiger Antwort nach 1 Sekunde automatisch zur nächsten Frage | ||
| Zeile 607: | Zeile 611: | ||
| } else { | } else { | ||
| higherBtn.classList.add(' | higherBtn.classList.add(' | ||
| + | lowerBtn.classList.add(' | ||
| | | ||
| // Bei falscher Antwort Optionen anzeigen | // Bei falscher Antwort Optionen anzeigen | ||
| retryNextDiv.classList.remove(' | retryNextDiv.classList.remove(' | ||
| } | } | ||
| + | | ||
| + | // Buttons deaktivieren nach Antwort | ||
| + | higherBtn.disabled = true; | ||
| + | lowerBtn.disabled = true; | ||
| | | ||
| // Fortschritt aktualisieren | // Fortschritt aktualisieren | ||
| Zeile 627: | Zeile 636: | ||
| correctAnswers++; | correctAnswers++; | ||
| lowerBtn.classList.add(' | lowerBtn.classList.add(' | ||
| + | higherBtn.classList.remove(' | ||
| | | ||
| // Bei richtiger Antwort nach 1 Sekunde automatisch zur nächsten Frage | // Bei richtiger Antwort nach 1 Sekunde automatisch zur nächsten Frage | ||
| Zeile 632: | Zeile 642: | ||
| } else { | } else { | ||
| lowerBtn.classList.add(' | lowerBtn.classList.add(' | ||
| + | higherBtn.classList.add(' | ||
| | | ||
| // Bei falscher Antwort Optionen anzeigen | // Bei falscher Antwort Optionen anzeigen | ||
| retryNextDiv.classList.remove(' | retryNextDiv.classList.remove(' | ||
| } | } | ||
| + | | ||
| + | // Buttons deaktivieren nach Antwort | ||
| + | higherBtn.disabled = true; | ||
| + | lowerBtn.disabled = true; | ||
| | | ||
| // Fortschritt aktualisieren | // Fortschritt aktualisieren | ||
| Zeile 656: | Zeile 671: | ||
| restartBtn.addEventListener(' | restartBtn.addEventListener(' | ||
| finalResult.classList.add(' | finalResult.classList.add(' | ||
| - | document.querySelector(' | + | document.querySelector(' |
| }); | }); | ||
| }); | }); | ||
tools/tonhoehentrainer.1747669635.txt.gz · Zuletzt geändert: von Eric Weber
