gpt4 book ai didi

javascript - 1 分钟倒计时 Javascript

转载 作者:行者123 更新时间:2023-11-30 12:05:41 25 4
gpt4 key购买 nike

我正在尝试构建一个打字测试,当用户在文本区域中按下某个键时该测试开始倒计时。我认为 if-else 循环有助于在我的 HTML 中显示和启动 1 分钟倒计时计时器,但事实并非如此。

请向我解释我做错了什么以及如何更正我的代码。

HTML:

<div id="timer"></div>
<p>Text for typing test will go here.</p>
<textarea id="textarea" rows="14" cols="150" placeholder="Start typing here...">
</textarea>`

JS:

var seconds=1000 * 60; //1000 = 1 second in JS
var min = seconds * 60;
var textarea = document.getElementById("textarea").onkeypress = function() {
myFunction()
};
//When a key is pressed in the text area, update the timer using myFunction

function myFunction() {
document.getElementById("timer").innerHTML =
if (seconds>=0) {
seconds = seconds--;
} else {
clearInterval("timer");
alert("You type X WPM");
}
} //If seconds are equal or greater than 0, countdown until 1 minute has passed
//Else, clear the timer and alert user of how many words they type per minute

document.getElementById("timer").innerHTML="0:" + seconds;

最佳答案

我注意到您的解决方案存在一些问题。

1) 你清除了Interval,但你从未设置Interval

2) seconds = seconds--,由于 JavaScript 中的操作顺序,并不像您认为的那样。

我修改了你的 JS 并在这个 codepen 中有一个可行的解决方案

JS:

var seconds=60;
var timer;
function myFunction() {
if(seconds < 60) { // I want it to say 1:00, not 60
document.getElementById("timer").innerHTML = seconds;
}
if (seconds >0 ) { // so it doesn't go to -1
seconds--;
} else {
clearInterval(timer);
alert("You type X WPM");
}
}
document.getElementById("textarea").onkeypress = function() {
if(!timer) {
timer = window.setInterval(function() {
myFunction();
}, 1000); // every second
}
}

document.getElementById("timer").innerHTML="1:00";

关于javascript - 1 分钟倒计时 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35299413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com