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