问答详情
源自:2-1 JS速度动画

为什么把 var timer=null放进startmove()里就不起作用,多次触碰还是会变快

function startmove() {
    var timer=null;
    clearInterval(timer);
    var oDiv=document.getElementById("div1");
    timer=setInterval(function () {
        if (oDiv.offsetLeft==0){
            clearInterval(timer);
        }else {
            oDiv.style.left=oDiv.offsetLeft+1+'px';
        }
    },50)
}


提问者:麦片家电饼 2018-04-26 22:17

个回答

  • 慕数据9255373
    2018-04-28 10:10:31
    已采纳

    当你多次触碰时,上一次的定时器timer被 

    var timer=null;

    重新赋值了(即timer这个定时器的对象找不到了),导致clearInterval(timer),起不了作用。

    应该将var timer=null;写在函数的外面