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

0取余问题,有知道的给解释一下,百度都说0对数取余为0(我也觉得),在这里为什么不是???

function startScroll(){
     time=setInterval("scrollUp()",speed);

     area.scrollTop++;

     }
 function scrollUp(){
     if(area.scrollTop % iliHeight==0){
        
         clearInterval(time);
         setTimeout(startScroll,delay);
         }else{
             area.scrollTop++;
            // alert('aaa');
             if(area.scrollTop >= area.scrollHeight/2){
                 area.scrollTop =0;
                 }
             }
     }

源代码中进入函数startScroll时没有先area.scrollTop++;,而是进入了函数scrollUp中,而刚开始area.scrollTop不是为0吗?那岂不是要执行setTimeout(startScroll,delay);就要在等两秒,那开始一共不是要等4秒?但是运行了之后发现还是只等了2秒,于是我就在下面弹出来alert,发现刚开始就可以进入到scrollUp的elsezhong进行area.scrollTop++,这是为什么呢,难道0取余不为0吗?

正在回答

6 回答

function startScroll(){
     time=setInterval("scrollUp()",speed);

     area.scrollTop++;

     }

这段代码 实际的执行顺序 是:

       先执行 area.scrollTop++;  

       后执行 time=setInterval("scrollUp()",speed);

给你一个测试代码:

<script>
      alert("1");
      setInterval(function () {
           alert("2")
      },200);
      alert("3");
</script>

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

手误 。“大概”换成“在”,“scrollTop”换成 "scrollUp" 

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

area.scrollTop % iliHeight==0,这个判断大概area.scrollTop为0的时候确实是成立的。但是在startScroll中会同时执行一下area.scrollTop++;然后再去执行scrollTop,所以上面一开始的的判断是false。你可以alert一下。

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

0%0 的结果是 NaN,显然NaN==0是false

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

举报

0/150
提交
取消
信息滚动效果制作
  • 参与学习       47753    人
  • 解答问题       321    个

萌妹子带您快速学习滚动效果,掌握无缝滚动和歇间性滚动的制作方法

进入课程

0取余问题,有知道的给解释一下,百度都说0对数取余为0(我也觉得),在这里为什么不是???

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