其他分享
首页 > 其他分享> > 如何暂停for循环中的setTimeout

如何暂停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>

 

标签:function,arr,num,++,var,循环,sts,暂停,setTimeout
来源: https://www.cnblogs.com/mitoo/p/16502878.html