问答详情
源自:1-1 让你认识JS

我写了一个无缝滚动的代码,请大家帮我看看,为什么这个定时器停不下来啊

window.onload=function()
{
    
    var oDiv=document.getElementById('roll');
    var oImg=oDiv.getElementsByTagName('img');
    var oUl=document.getElementById('ul');
    var btnLeft=document.getElementById('left');
    var btnright=document.getElementById('right');
    var ali=oUl.getElementsByTagName('li');
    var isSpeed;
    var btnstop=document.getElementById('btn');
    var timer=null;
    
    btnLeft.onmouseover=function()
    {isSpeed=-13;}
    btnright.onmouseover=function()
    {isSpeed=13;}  //设置速度和方向
    oUl.innerHTML+=oUl.innerHTML;
    
    setInterval(move,100)    //定时器
    
    btnstop.onclick=function()
    {
        timer=setInterval(move,100)//为什么停不下来啊??????
        
        clearInterval(timer)}
    function move()
    {    
        oUl.style.width=ali.length*ali[0].offsetWidth+'px'
        oUl.style.left=oUl.offsetLeft+isSpeed+'px';
        
        if(oUl.offsetLeft<-oUl.offsetWidth/2)
        {oUl.style.left='0px';}
        else if(oUl.offsetLeft>0)
        {oUl.style.left=-oUl.offsetWidth/2+'px';}
    }
    
}

提问者:慕运维8689091 2016-07-22 08:22

个回答

  • Virtuesun
    2016-07-22 09:46:51
    已采纳

    为何要用两个定时器  上面那个一直在调用move啊

  • 乄小安静
    2016-07-30 14:46:25

    可以用浏览器打断点,按F12http://img.mukewang.com/579c4d370001e3f614400853.jpg

  • 乄小安静
    2016-07-22 10:08:41

    建议你运行过程中打断点,就能看出代码运行的走向

  • 叶落风吹
    2016-07-22 09:51:10

       setInterval(move,100)    //定时器一行去掉