進捗バーを10回表示して非表示にしたい。だから私はforループを使用しています。これは関数oneLoopを呼び出します。 oneLoopは100秒ごとにフレーム関数を呼び出します。フレーム機能は、進行状況バーを変更するために使用されます。setInterval(jQuery)を使用する関数をループする
ただし、forループは1回だけ実行されます。私はoneloop関数を実行するために別のsetInterval関数を使用したくないです。なぜなら、非同期イベントがインターバルの間に起こり、事態が非常に悪くなるからです。 oneLoopを10回実行し、前の実行が終了した後に開始するためにどのように実行することができますか?
コード:
for(var i=0;i<10;i++){
$(".progress").show();
var w = {j:100};
oneLoop(w);
}
function oneLoop(w){
timerId = setInterval(function(){
frame(w)
},100);
}
function frame(w) {
//when the percentage becomes zero, the progress bar closes
if (w.j === 0) {
clearInterval(timerId);
$(".progress").fadeOut();
}
//the percentage is descreased be 1%
else {
w.j = w.j - 1;
$(".progress-bar").width(w.j + '%');
}
}
そしてHTML:
<div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100">
</div>
</div>
https://jsfiddle.net/DTcHh/27828/
...これを試してみてください... – n00dl3
私は質問が明らかだったと思いました。しかし、今質問が明確になるように書かれています。 – themis93
「前回の終了後に」何パーセントを意味するのですか? – n00dl3