Javascript setInterval()计时是。。。关

Javascript setInterval()计时是。。。关,javascript,html,Javascript,Html,我对此感到困惑。。。但我的setInterval()行过于复杂的系统似乎有点不对劲。也许时间安排是为了赶上进度?只是有点奇怪,我不知道为什么 就css而言,上面的JSFIDLE看起来有点不对劲,但我认为这只是JSFIDLE本身。当我在GoogleChrome中以一个文档的形式运行它时,它看起来很好(而且我只是让它在GoogleChrome中运行)。这是一个一次性的应用程序,在我自己的计算机上使用,一次,作为筹款人温度计。所以只需注意数字和javascript。我只是想让数字看起来更平滑。我曾考

我对此感到困惑。。。但我的setInterval()行过于复杂的系统似乎有点不对劲。也许时间安排是为了赶上进度?只是有点奇怪,我不知道为什么


就css而言,上面的JSFIDLE看起来有点不对劲,但我认为这只是JSFIDLE本身。当我在GoogleChrome中以一个文档的形式运行它时,它看起来很好(而且我只是让它在GoogleChrome中运行)。这是一个一次性的应用程序,在我自己的计算机上使用,一次,作为筹款人温度计。所以只需注意数字和javascript。我只是想让数字看起来更平滑。我曾考虑过使用百分比(.90*raised),但它们的效果几乎相同。我的时间和速度怎么了?此外,顶部的按钮仅用于调试目的。它们不会出现在程序的最终草稿中。

您正在多次设置
setInterval
,并且每2秒重复一次。在接下来的2秒之后,您将创建另一个
setInterval
逻辑部分,因此它将运行double
setInterval
函数。如果您希望在保存间隔中更改数字,请使用single
setTimout
函数。

我使用的是多个setInterval(),但在下一个setInterval()开始之前清除每个setInterval并启动一个新的setInterval(),对吗?我不太明白。@Dr3amTw1st您正在清除内部
设置间隔
,但外部
检查
间隔会重复。并检查是否确实清除了迄今为止设置的所有间隔。最好在函数开始时将它们全部清除。
var number=0; // Do not change!
var key1=true, key2=false, key3=false, key4=false, key5=false; // Do not change!
var key6=false, key7=false, key8=false, key9=false; // Do not change!
var climbSpeed=2000; // Climbing speed in milliseconds. Don't change unless you REALLY know what you're doing.
var raised=100; // The amount raised so far. Able to be changed.
var goal=250; // The goal, obviously... :P Able to be changed.

var c1=setInterval(function(){document.getElementById("amount").innerHTML="$"+number++;},climbSpeed);
var c2, c3, c4, c5, c6, c7, c8, c9, c10;

var check=setInterval(
function() {
    if (number>0 && key1==true) {
        key1=false;
        clearInterval(c1);
        climbSpeed=1500;
        c2=setInterval(function(){document.getElementById("amount").innerHTML="$"+number++;},climbSpeed);
        key2=true;
    }
    if (number>3 && key2==true) {
        key2=false;
        clearInterval(c2);
        climbSpeed=700;
        c3=setInterval(function(){document.getElementById("amount").innerHTML="$"+number++;},climbSpeed);
        key3=true;
    }
    if (number>9 && key3==true) {
        key3=false;
        clearInterval(c3);
        climbSpeed=200;
        c4=setInterval(function(){document.getElementById("amount").innerHTML="$"+number++;},climbSpeed);
        key4=true;
    }
    if (number>(.15*raised) && key4==true) {
        key4=false;
        clearInterval(c4);
        climbSpeed=100;
        c5=setInterval(function(){document.getElementById("amount").innerHTML="$"+number++;},climbSpeed);
        key5=true;
    }
    if (number>(.20*raised) && key5==true) {
        key5=false;
        clearInterval(c5);
        climbSpeed=90;
        c6=setInterval(function(){document.getElementById("amount").innerHTML="$"+number++;},climbSpeed);
        key6=true;
    }
    if (number>(.30*raised) && key6==true) {
        key6=false;
        clearInterval(c6);
        climbSpeed=110;
        c7=setInterval(function(){document.getElementById("amount").innerHTML="$"+number++;},climbSpeed);
        key7=true;
    }
    if (number>(raised-20) && key7==true) {
        key7=false;
        clearInterval(c7);
        climbSpeed=500;
        c8=setInterval(function(){document.getElementById("amount").innerHTML="$"+number++;},climbSpeed);
        key8=true;
    }
    if (number>(raised-11) && key8==true) {
        key8=false;
        clearInterval(c8);
        climbSpeed=650;
        c9=setInterval(function(){document.getElementById("amount").innerHTML="$"+number++;},climbSpeed);
        key9=true;
    }
    if (number>=(raised-10) && key9==true) {
        key9=false;
        clearInterval(c9);
        climbSpeed=900;
        c10=setInterval(function(){document.getElementById("amount").innerHTML="$"+number++;},climbSpeed);
    }
    if (number>raised) {
        clearInterval(c10);
        document.getElementById("amount").style.color="red";
        //document.getElementById("amount").style.fontSize="250px";
    }
},climbSpeed);

function stop() {
alert("climbSpeed: " + climbSpeed + "\n" + "number: " + number + "\n" + "raised: " + raised);
//clearInterval(c1);
//clearInterval(c2);
//clearInterval(c3);
//clearInterval(c4);
//clearInterval(c5);
//clearInterval(c6);
//clearInterval(c7);
//clearInterval(c8);
//clearInterval(c9);
//clearInterval(c10);
}