修改
我以为我会尝试添加一些清晰度。基本上我想要的是与杆位相似:越过终点线并获得更多时间。除非在这种情况下你匹配两个数字。
我想要更好地使用Javascript和jQuery,所以我认为创建游戏将是一个很好的方式。
游戏的要点是给你一个数字,目标是匹配那个数字。我有一切工作,包括当目标匹配时,它会增加分数。我现在想要的是在目标匹配时再添加30秒。
我得到它为innerHTML添加30秒但不倒计时。因此,如果你在15岁时它会闪45然后再回到14。
我找到了答案here,并认为我可以更改
if (seconds == 0) {
isRunning = true;
seconds += 2;
根据我的情况将其更改为秒+ = 30;但没有任何反应。
这是我的代码。如果您愿意分享,我也对Jquery解决方案持开放态度。
var isWaiting = false;
var isRunning = false;
var seconds = 120;
var countdownTimer;
var finalCountdown = false;
var goalDiv = document.getElementById("goal").innerHTML;
var totalDiv = document.getElementById("total").innerHTML;
function GameTimer() {
var minutes = Math.round((seconds - 30) / 60);
var remainingSeconds = seconds % 120;
document.getElementById('timerID').innerHTML = remainingSeconds;
if (goalDiv == totalDiv) {
isRunning = true;
seconds += 30;
if (seconds == 0) {
$.mobile.changePage("index.html#youlost",{transition: "slideup"});
clearInterval(countdownTimer);
} else {
finalCountdown = true;
}
} else {
isWaiting = true;
seconds--;
}
}
countdownTimer = setInterval(GameTimer, 1000);
答案 0 :(得分:0)
您最初设置后似乎永远不会更新totalDiv
的值。
var goalDiv = document.getElementById("goal").innerHTML;
var totalDiv = document.getElementById("total").innerHTML;
然后,您的GameTimer()
函数会一遍又一遍地检查totalDiv
的旧值。所以它永远不会增加秒计数器。
您可能希望更改代码,以便在计时器的每个刻度上重新检查totalDiv
的值:
function GameTimer() {
var minutes = Math.round((seconds - 30) / 60); // also this does not make
var remainingSeconds = seconds % 120; // much sense..
var totalDiv = document.getElementById("total").innerHTML;
document.getElementById('timerID').innerHTML = remainingSeconds;
var totalDiv = document.getElementById("total").innerHTML;
//...
这是显示工作版本的a JSFiddle(基于您的示例代码,根据我对您要做的事情的理解进行修改)
另一件事。这也不对..
seconds += 30;
if (seconds == 0) { // this won't be 0 unless seconds was -30 before..
$.mobile.changePage("index.html#youlost",{transition: "slideup"});
clearInterval(countdownTimer);
}
答案 1 :(得分:0)
我明白了。
首先,我写了自己的时间。
var count = 120;
function timer() {
count--;
$("#timerID").html(+count);
}
然后.... 我把所有东西都装在$(文件).ready函数中。
我把setInterval放在一个全局变量中。
我的clearInterval拉取变量并且在我的函数内部,并检查我的条件得分。
然后我加30秒并召回计时器。
也许不是最好的策略,但它有效。