正在使用我自己的Javascript倒计时定时器/Pomodro技术



由于我一直在通过观看YouTube上的教程和阅读Head First JavaScript一书来自学如何用JavaScript编写代码,我决定通过构建对我来说非常有效的东西来挑战自己——Pomodoro技术!自从我开始学习JavaScript以来,我就一直在使用这种技术。当我想到一个涉及数组、函数、DOM等的JavaScript编码挑战时,我想为什么不使用Pomodoro技术呢?它可以在我5分钟的休息时间内进行一系列活动,一个25分钟和5分钟计时器的函数,然后使用HTML和CSS进行样式设置。不管怎样,这是我到目前为止的代码。。。

<script>
function startTimer() {
var timer = document.getElementById("myTimer").innerHTML;
var arr = timer.split(":");
var hour = arr[0];
var min = arr[1];
var sec = arr[2];
if (sec == 0) {
if (min == 0) {
if (hour == 0) {
alert(pushup());
window.location.reload();
return;
}
hour--;
min = 60;
if (hour < 10) hour = "0" + hour;
}
min--;
if (min < 10) min = "0" + min;
sec = 59;
}
else sec--;
if (sec < 10) sec = "0" + sec;
document.getElementById("myTimer").innerHTML = hour + ":" + min + ":" + sec;
setTimeout(startTimer, 1000);

function pushup() {
var minBreak = ["Do 5 push ups!", "Do 10 push ups!", "Do 15 push ups!",
"Do 5 sit ups!", "Do 10 sit ups!", "Do 15 sit ups!",
"Clean room!", "Do laundry!", "Walk dog!" ];
var rand1 = Math.floor(Math.random() * minBreak.length);
var phrase = minBreak[rand1];
alert(phrase)
};
};

</script>
</head>
<body onload="startTimer();">
<p id="myTimer">00:00:10</p>
</body>

我一步一步地完成了这项工作,首先创建了俯卧撑功能,这很容易做到,在每一步都设置了警报,这样我就知道我也走在了正确的轨道上。然而,startTime函数是YouTube视频上的一个副本。尽管我很想自己解决这个问题,但我一直在努力在浏览器中设置计时器!我能做的唯一成功的方法是使用setInterval方法。然而,这段视频只有一分钟长,并没有解释它是如何工作的。我确保我逐行了解它是如何工作的,.split方法,为什么要有多个if语句,等等。写下笔记,确保我理解。现在,当计时器在10秒时关闭时,它会随机提醒其中一个minBreak家务,成功!但随后显示另一条警告,称"页面显示未定义",这是为什么?(因为我是新手)你会怎么写这个代码?我想有多种不同家务的变量。因此,var pushup将有一个1 push-up,2 push-up的数组,依此类推。var situp将有1 situp,2 situp的数组,以此类推。我应该使用什么语句或方法,以便math.random可以随机从许多不同的变量数组中选择一个,而不是一个。并不是真的要求你给我看一个如何完成的代码,而是一个用于语句、while、if等的方法。对不起,如果没有意义。。我是新手!但只是想在路上做点什么,挑战自己,质疑自己。但同时需要一位导师/老师给我指路。

您得到的是undefined消息,因为您有两个alert。第二个使用函数返回值来显示,但该函数不返回任何内容,因此undefined:

alert(pushup());

所以函数pushup本身执行一个alert,这就像你想要的一样。但随后函数返回到上面的语句,函数的结果显示在alert中。它是undefined

所以你可以通过调用函数来解决这个问题:

pushup();

据我所知,这是唯一需要解决的问题。

最新更新