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

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

flag是怎么變成true的??

window.onload?=?function(){
????var?li?=?document.getElementById('li1');
????li.onmouseover?=?function(){
????????startMove(li,{'width':400,'height':200})
????}			
????li.onmouseout?=?function(){				
????????startMove(li,{'width':200,'height':100})			
????}		?
}		

//運動框架?startMove函數		
function?startMove(obj,json,fn){			
????clearInterval(obj.timer);
????var?flag?=?true;			
????//開啟定時器			
????obj.timer?=?setInterval(function(){				
????????//遍歷json				
????????for?(var?attr?in?json)?{					
????????????var?speed?=?0;					
????????????//取當前值?icur					
????????????if?(attr?==?'opacity')?{						
????????????????var?icur?=?Math.round(parseFloat(getStyle(obj,attr))*100);					
????????????}else{						
????????????????var?icur?=?parseInt(getStyle(obj,attr));					
????????????}					
????????????//算速度:speed
????????????//目標值:json[attr]					
????????????if?(icur?<?json[attr])?{						
????????????????speed?=?Math.ceil((json[attr]?-?icur)/8);					
????????????}else{						
????????????????speed?=?Math.floor((json[attr]?-?icur)/8);					
????????????}							
????????????//檢測停止					
????????????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';					
????????????}???
????????}
????????//動畫結束時,這里?flag?是怎么變成?true?的???????				
????????if?(flag)?{					
????????????clearInterval(obj.timer);					
????????????if?(fn)?{fn()}				
????????}?????????				
????},30)		
}


正在回答

1 回答

視頻中flag的聲明位置應該是寫錯了,實際上應該是寫在定時器內。

視頻中為什么動畫會停止?完全是因為speed歸0了,動畫停止了,但實際上定時器并沒有停止,還在繼續運行。

感謝 @紙丶兩面白? ?同學!

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

慕粉2147585081

還有flag=true一定要放在for(var attr in jsno){....}這個循環外面
2018-11-19 回復 有任何疑惑可以回復我~
#2

慕粉2147585081

看著3個動畫是同時運行的,其實是定時器每執行一次,依次把長,寬,不透明級別依次改變一個speed大小
2018-11-19 回復 有任何疑惑可以回復我~
#3

慕粉2147585081 回復 慕粉2147585081

我說錯了,是if(flag==true)一定要在for(var attr in jsno){....}循環外面,flag=true,可以放在for(var attr in jsno){....}這個循環外面,也可以在里面
2018-11-19 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

flag是怎么變成true的??

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

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

幫助反饋 APP下載

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

公眾號

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