使用setInterval零更新的进度条仍需要一段时间才能完成

时间:2015-04-19 14:39:02

标签: javascript progress-bar setinterval

很抱歉非常棒,但我开始学习JavaScript并遇到一些问题。

在下面的代码示例中,进度条在1秒内从0变为100,然而," time"变量设置为0毫秒,由setInterval使用。当我按下按钮时,我希望进度条立即达到100%。 (我将有不到一秒的时间完成,我想正确显示它们。)看起来setInterval没有使用给定的时间作为毫秒。

所以我的问题是,如何将setInterval设置为使用毫秒,因为它应该是? (我知道如果你第二次点击按钮会表现得很奇怪,但现在这没关系。)

谢谢!

<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<button id="theButton">click</button>
<progress id="progressbar" min="0" value="0" max="100"></progress>
<span class="progress-value">0%</span>
    <script>
        $('#theButton').click(function(){
            var progressbar = $('#progressbar'),
                max = progressbar.attr('max'),
                time = 0,   
                value = progressbar.val();

            var loading = function() {
                value += 1;
                addValue = progressbar.val(value);

                $('.progress-value').html(value + '%');

                if (value == max) {
                    clearInterval(animate);
                }
            };

            var animate = setInterval(function() {
                loading();
            }, time);
        });
    </script>

0 个答案:

没有答案