完美運(yùn)動(dòng)框架中move.js文件里面沒(méi)有定義一個(gè)變量obj.timer,為什么調(diào)用startMove函數(shù)時(shí)能直接清除定時(shí)器
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); ? ? //為什么這里能直接清除定時(shí)器???
obj.timer = setInterval(function(){
var flag = true;
for (var attr in json){
//1.取當(dāng)前的值
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.檢測(cè)是否全部完成
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.檢測(cè)停止
if(flag){
clearInterval(obj.timer);
if (fn){
fn();
}
}
},30);
}
2016-08-22
我覺(jué)得,,,是因?yàn)樵趈s里,變量可以不用聲明也可以直接用,,在基礎(chǔ)篇好像有提到過(guò),有那么點(diǎn)印象,不知道對(duì)不對(duì)