亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

難道大家都覺得flag是放在計時器里才對??我的天

flag?放在計時器里跟沒定義一個卵樣,會出現bug,有些同志沒有經過完全的調試就以為找出了一個bug;其實不然,運行的時候打開F12看看高寬就知道了,

正在回答

6 回答

flag是要放到計時器里的,同時if(flag)要放到for in循環的后面而不是里面,這樣寬高就都對了

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

我的也有問題,加了if(flag)后鏈式運動執行不了了,因為鏈式運動一次只改變一個屬性,然后達到后定時器就清空了,后面的就不執行了

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

樓主是沒把if (flag)放在計時器外?

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

我的運行的很正常 ?也么有什么數據誤差,,,


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

在flag為false時定時器會一直執行,每次執行時都會重置為true,直到所有的都達到目標值,就不會再為false了,然會就能執行下一個運動

1 回復 有任何疑惑可以回復我~
//同步運動函數
function?move(obj,?json,?fn)?{
	//清除定時器,避免出現多個定時器	
	clearInterval(obj.timer);

	//設定定時器
	obj.timer?=?setInterval(function?()?{
		//聲明標桿變量
		var?flag?=?true;
		//遍歷同步運動屬性
		for?(var?attr?in?json)?{
			//獲取屬性值
			var?icur?=?0;
			if?(attr?==?'opacity')?{
				icur?=?Math.round(parseFloat(getStyle(obj,attr))?*?100);
			}?else?{
				icur?=?parseInt(getStyle(obj,?attr));
			}

			//設置運動速度
			var?speed?=?(json[attr]?-?icur)/100;
			speed?=?speed>0?Math.ceil(speed):Math.floor(speed);

			//?判斷是否所有值都達到了目標值,判定暫停定時器的指標
			if?(icur?!=?json[attr])?{
				flag?=?false;
			}
			if?(attr?==?'opacity')?{
				obj.style.opacity?=?(icur?+?speed)?/?100;
				obj.style.filter?=?'alpha(opacity:'?+?(icur?+?speed)?+?')';
			}?else?{
				obj.style[attr]?=?(icur?+?speed)?+?'px';
			}
		}	
		
		//清除定時器
		if(flag){
			clearInterval(obj.timer);
			if(fn){
				fn();
			}
		}		
	},?1);
}


//獲取任意屬性
function?getStyle(obj,?attr)?{
	if?(obj.currentStyle)?{
		return?obj.currentStyle[attr];?//IE取樣式
	}?else?{
		return?getComputedStyle(obj,?false)[attr];
	}
}


1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

難道大家都覺得flag是放在計時器里才對??我的天

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號