關(guān)于flag問題
不知道大家有沒有遇到,如果像老師寫的flag就是一開始給個初始值為true,在循環(huán)里卻沒有去設(shè)置flag = true,導致定時器沒有關(guān)閉,因為flag在循環(huán)后就一直為false,在這種情況下,同時運動居然能夠完美的運行成功,單身鏈式動畫卻失效了。但是如果在for(var attr in json)里添加?
if( icur != json[attr]){?
????????flag = false;
}else{
????flag = true;
}此時定時器可以關(guān)閉了,鏈式動畫也可以執(zhí)行,但是同時運動卻無法達到效果了,請問有人知道解決辦法嗎???!!
2015-09-05
嗯 上面代碼確實對著 主要是老師將flag的定義寫錯位置了
2015-09-05
每隔30毫秒,在計時器里面都會先將flag值設(shè)置為真,然后再去遍歷時候還有未到達itarget的屬性,如果都完成。flag就還是真,終止計時器。。。結(jié)束戰(zhàn)斗。
2015-09-04
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);//Math.round四舍五入取整目的是為了解決計算機存儲小數(shù)不精確問題
}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';
};
}
}
if (flag == true) {
clearInterval(obj.timer);
if (fn) {
fn();
};
};
},30);
}
2015-08-26
我也疑惑,這個flag經(jīng)過遍歷后就一直為false了?。。?!