Javascript 我怎样做一个间隔计时器?
我有引导加载栏:Javascript 我怎样做一个间隔计时器?,javascript,css,twitter-bootstrap,Javascript,Css,Twitter Bootstrap,我有引导加载栏: <div class="progress"> <div class="progress-bar progress-bar-success progress-bar-striped active" id="loading" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="width: 0%"> </div> &l
<div class="progress">
<div class="progress-bar progress-bar-success progress-bar-striped active" id="loading" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
</div>
</div>
您在函数块中声明
var percentl
,因此percentl
仅在内部函数的范围内声明,每次调用函数时,percentl
的值未定义,并在设置为NaN后(如RobG在注释中所述)。试试这个:
var percentl = 0;
setInterval(function () {
percentl = percentl + 5;
document.getElementById("loading").style.width = percentl + "%";
}, 1000);
您在函数块中声明
var percentl
,因此percentl
仅在内部函数的范围内声明,每次调用函数时,percentl
的值未定义,并在设置为NaN后(如RobG在注释中所述)。试试这个:
var percentl = 0;
setInterval(function () {
percentl = percentl + 5;
document.getElementById("loading").style.width = percentl + "%";
}, 1000);
1) percentl在您的函数中有一个局部范围。每次调用它时,都将其重新定义为相同的值
将percentl设置为全局作用域,匿名函数每次调用时都可以访问该作用域
2) 您也只调用了一次setInterval。你应该循环调用它,直到达到100%。比如:
var percentl = 0;
function increase(){
setInterval(function () {
percentl = percentl + 5;
document.getElementById("loading").style.width = percentl + "%";
if(percentl < 100){
increase();
}
}, 1000);
}
var percentl=0;
功能增加(){
setInterval(函数(){
百分比L=百分比L+5;
document.getElementById(“加载”).style.width=percentl+“%”;
如果(百分比L<100){
增加();
}
}, 1000);
}
1)percentl在您的函数中有一个局部范围。每次调用它时,都将其重新定义为相同的值
将percentl设置为全局作用域,匿名函数每次调用时都可以访问该作用域
2) 您也只调用了一次setInterval。你应该循环调用它,直到达到100%。比如:
var percentl = 0;
function increase(){
setInterval(function () {
percentl = percentl + 5;
document.getElementById("loading").style.width = percentl + "%";
if(percentl < 100){
increase();
}
}, 1000);
}
var percentl=0;
功能增加(){
setInterval(函数(){
百分比L=百分比L+5;
document.getElementById(“加载”).style.width=percentl+“%”;
如果(百分比L<100){
增加();
}
}, 1000);
}
您没有更新percentl的值,因此该值始终为0。哎呀,编辑后跳过了该值。修正了,谢谢(顺便说一句,这很快又脏,但应该让他走了)你没有更新percentl的值,所以该值总是0。哎呀,编辑后跳过了。修复了,谢谢(顺便说一句,这很快又脏,但应该可以让他继续)(var i=0;i这将很快设置100个函数在1秒后被调用,因此它们都将在大约相同的时间运行,并且都对i有一个闭包,因此它们都将得到100%的值(i的最后一个值)。(var i=0;i这将很快设置100个函数在1秒后被调用,因此它们都将在大约相同的时间运行,并且都对i有一个闭包,因此它们都将得到100%的值(i的最后一个值)。