为了账号安全,请及时绑定邮箱和手机立即绑定

关于setTimeout函数;为什么这里用的是setTimeout调用自身函数,而用setInterval去调用函数就不成功?

关于setTimeout函数;为什么这里用的是setTimeout调用自身函数,而用setInterval去调用函数就不成功?

正在回答

2 回答

 window.onload=function(){

      aa = setInterval("addH()",30)

   }

    var h=0; 

    function addH(){

      if(h<300){

        h+=5;

        document.getElementById('pn').style.height=h+'px';

      }else{

    clearInterval(aa);

    setTimeout(subH,5000);

      }

    }

    function subH(){

      if(h<=0){

          document.getElementById('pn').style.display='none';

         return ;

      }else{

       h-=5;

       document.getElementById('pn').style.height=h+'px';

      }

       setTimeout("subH()",30);

    }


0 回复 有任何疑惑可以回复我~

setTimeout 在这里是30毫秒后调用一次      setInterval是每隔30毫秒调用一次 在这里如果把setInterval写在subH或addH中 相当于不停的再叠加setInterval  因为下一次调用setInterval的时候上一次的setInterval任然在执行  我回答的不是太好希望能帮到你  

0 回复 有任何疑惑可以回复我~
#1

bequite

如果用setInterval 应该要放到函数外面 或者每次调用的时候函数里给个clearInterval() 先结束上一次的 setInterval 这样就不会叠加了
2015-12-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
展开与收起效果
  • 参与学习       33641    人
  • 解答问题       179    个

通过效果展示与案例分析,教您实现不同类型的展开与收起效果

进入课程

关于setTimeout函数;为什么这里用的是setTimeout调用自身函数,而用setInterval去调用函数就不成功?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信