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

完美运动框架中move.js文件里面没有定义一个变量obj.timer,为什么调用startMove函数时能直接清除定时器

function getStyle(obj,attr){

if(obj.currentStyle){

return obj.currentStyle[attr];

}else{

return getComputedStyle(obj,false)[attr];

}

}


function startMove(obj,json,fn){

clearInterval(obj.timer);     //为什么这里能直接清除定时器???

obj.timer = setInterval(function(){

var flag = true;

for (var attr in json){

//1.取当前的值

var icur = 0;

if (attr == 'opacity'){

icur = Math.round(parseFloat(getStyle(obj,attr))*100);

}else{

icur = parseInt(getStyle(obj,attr));

}

//2.算速度

var speed = (json[attr] - icur)/8;

speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);

//3.检测是否全部完成

if (icur != json[attr]){

flag = false;

}

if (attr == 'opacity'){

obj.style.filter = 'alpha(opacity:' + (icur + speed) + ')';

obj.style.opacity = (icur + speed)/100;

}else{

obj.style[attr] = icur + speed + 'px';

}

}

//4.检测停止

if(flag){

clearInterval(obj.timer);

if (fn){

fn();

}

}

},30);

}


正在回答

1 回答

我觉得,,,是因为在js里,变量可以不用声明也可以直接用,,在基础篇好像有提到过,有那么点印象,不知道对不对

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

举报

0/150
提交
取消

完美运动框架中move.js文件里面没有定义一个变量obj.timer,为什么调用startMove函数时能直接清除定时器

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号