SpeedCubing Stoppuhr in JS
P粉014293738
P粉014293738 2023-09-14 09:13:21
0
1
560

Eingebauter Timer im Codeblock. Im Moment startet/stoppt der Timer über die Taste, aber ich möchte, dass er läuft, wenn die Leertaste losgelassen wird, und dass er stoppt, wenn die Leertaste gedrückt wird. Ich versuche nun schon seit etwa zwei Tagen, dieses Problem zu lösen, kann aber scheinbar keine Lösung finden. Jedes Mal, wenn ich versuche, den Timer zu stoppen, startet der Timer erneut, wenn ich die Leertaste loslasse.

let startDate; let timeoutID = 0; let time; let started = false; let timerRunOut = false; function start(){ if(!started){ startDate = new Date(); startTimer(); started = true; } } function stop(){ if(started){ clearTimeout(timeoutID); started = false; } } function startTimer () { let current = new Date(); time = (current - startDate); let timeMS = time; let ms = timeMS % 1000; timeMS = (timeMS - ms) / 1000; let seconds = timeMS % 60; timeMS = (timeMS - seconds) / 60; let mins = timeMS % 60; if(seconds < 10){ document.getElementById("seconds").innerText = "0" + seconds; }else{ document.getElementById("seconds").innerText = seconds; } if(mins > 0 && mins < 10){ document.getElementById("minutes").innerText = "0" + mins + ":"; }else if(mins > 0){ document.getElementById("minutes").innerText = mins + ":"; }else{ document.getElementById("minutes").innerText = ""; } if(ms < 10){ document.getElementById("tens").innerText = "00" + ms; } else if(ms < 100){ document.getElementById("tens").innerText = "0" + ms; }else{ document.getElementById("tens").innerText = ms; } timeoutID = setTimeout(startTimer, 0); }

Ich habe versucht, Ereignis-Listener und Bedingungen hinzuzufügen, aber nichts funktioniert. Wenn der Timer stoppt, startet er immer wieder, wenn ich die Leertaste loslasse.

P粉014293738
P粉014293738

Antworte allen (1)
P粉762730205

我找到了解决方案,我需要给Andre一点功劳,他帮助我解决了问题这个出来了。

let spaceUp = 0; function startHandler(event){ if(event.code === "Space" && spaceUp < 1){ start(); spaceUp ++; document.addEventListener("keydown", stopHandler); document.removeEventListener("keyup", startHandler); }else if(spaceUp == 1){ spaceUp = 0; } document.getElementById("timer").style.color = "black"; } function stopHandler(event){ if(event.code === "Space"){ stop(); document.removeEventListener("keydown", stopHandler); document.getElementById("timer").style.color = "red"; document.addEventListener("keyup", startHandler); } } document.addEventListener("keyup", startHandler); document.addEventListener("keydown", function(e){ if(e.code === "Space" && !started){ document.getElementById("timer").style.color = "green"; } })
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!