如何暂停for循环中的setTimeout
循环中的计时器可匀速每隔一段时间执行一遍,在执行过程中如果暂停计时器,然后再继续执行并实现无缝衔接可以试试以下方法
<button class="start">开始</button>
<button class="zt">暂停</button>
<script>
var arr=[1,2,3,4,5,6,7,8,9,10,11,12]
var sts=[];
var num=0;
$(".start").on('click',function(){
eachdiv()
})
$(".zt").on('click',function(){
for (var i = 0; i < sts.length; i++) {
clearTimeout(sts[i]);
}
return
})
function eachdiv(){
var b=0;
for (var i = num; i < arr.length; i++) {
(function (t,s) {
sts.push(setTimeout(function () {
num=t
console.log(arr[t]);
}, 3000 * s))
})(i,b)
b++
}
}
</script>
浙公网安备 33010602011771号