Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Div值增量javascript_Javascript_Loops_While Loop_Delay_Increment - Fatal编程技术网

Div值增量javascript

Div值增量javascript,javascript,loops,while-loop,delay,increment,Javascript,Loops,While Loop,Delay,Increment,我试图制作一个div,动画值增加到它的最终值。下面是前面的一个例子:(满意的客户、完成的项目等) 我尝试了很多不同的代码行,但都没有成功。我可以做增量,但不知道如何在每次有增量时进行延迟。我尝试了setTimeout()和setInterval() 以下是我目前的代码: $(document).ready(function(){ test(); function test(){ var i = 0; while ( i <= 100 ) {

我试图制作一个div,动画值增加到它的最终值。下面是前面的一个例子:(满意的客户、完成的项目等)

我尝试了很多不同的代码行,但都没有成功。我可以做增量,但不知道如何在每次有增量时进行延迟。我尝试了setTimeout()和setInterval()

以下是我目前的代码:

$(document).ready(function(){
    test();

    function test(){
        var i = 0;
        while ( i <= 100 ) {
            $("#test").text(i);
            i++;
        }
    }
});
$(文档).ready(函数(){
test();
功能测试(){
var i=0;
while(i
for(var i=0;i<100;i++){//for循环比while循环更容易
setTimeout(函数(){//setTimeout
document.getElementById('test').textContent++;/…增加textContent的位置
},i*20);/…间隔20ms
}

您需要类似于:

$(document).ready(function(){
    var i = 0;

    test();

    function test(){
        $("#test").text(i++);
        if(i < 100) {
            setTimeout(test, 500);
        }
    }
});
$(文档).ready(函数(){
var i=0;
test();
功能测试(){
$(“#测试”).text(i++);
如果(i<100){
设置超时(测试,500);
}
}
});

这不起作用-你必须做一个递归循环。所有这些超时都将同时添加time@megawac超时会在不同的时间过期。试着自己运行它。哦,是的,我明白了不是我会这样做的;)但是像这样堆叠xxx超时是没有问题的(参考资料)?@Biduleohm不,浏览器应该能够毫不费力地处理数千次这样的超时。太棒了!谢谢!我想我已经把代码都弄乱了!别担心!开始几次让你的头脑清醒可能有点困难。
$(document).ready(function(){
    var i = 0;

    test();

    function test(){
        $("#test").text(i++);
        if(i < 100) {
            setTimeout(test, 500);
        }
    }
});