【发布时间】:2013-02-27 19:39:50
【问题描述】:
首先,我要警告你,我的英语不太好......
好的,这是我的问题:我有一个基于百分比每秒变宽的进度条。
每一秒我都想增加1.67 / [max] 的百分比。
[最大值] = 100%(需要多少分钟)。
(如果[max] = 10 - 进度条需要 10 分钟)
我的代码有效,但前提是数字(除法后)大于0.3(类似)。
所以这意味着如果进度条需要 1 分钟([max] = 1),则代码将起作用,因为除法后数字为1.67。
但是,如果我将 max 设置为 15 分钟,它将不起作用 - 为什么?!
这是我的代码:(我添加了一些 cmets 以使其更容易)
<script>
function updateProgress() {
/*Get Progress Width (in percents)*/ var progress = ( 100 * parseFloat($('#arena_bar').css('width')) / parseFloat($('#arena_bar').parent().css('width')) );
var corrent = progress;
var max = 1; // one minute
var add = 1.67 / max;
if (progress < 100) {
corrent += add;
$("#arena_bar").css("width", corrent + "%");
setTimeout(updateProgress, 1000); // update every second
}
}
updateProgress();
</script>
请帮忙!
【问题讨论】:
-
最有可能出现舍入错误。尝试将所有进度值乘以 100,然后在最后一刻除以 100。
-
你不需要为你的英语道歉。我们可以很好地理解你。
-
我不明白我应该乘以什么... var 进度?
标签: javascript jquery timeout progress-bar