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

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

為什么這個運動框架調用不后調函數

function?startMove(obj,json,func){
????clearInterval(obj.timer);
????var?i?=?true;//假設所有運動都完成
????obj.timer?=?setInterval(function(){
????????//1.取值
????????for(var?arrt?in?json){
????????var?ice?=?0;
????????//判斷是否是透明度
????????if(arrt?==?'opacity'){
????????????ice?=?Math.round(parseFloat(getStyle(obj,arrt))*100);//當前透明度數值
????????????}else{
????????????ice?=?parseInt(getStyle(obj,arrt));//當前數值
????????????????}
????????//2.計算速度????????
????????var?speed?=?(json[arrt]-ice)/5;
????????//做緩沖運動的值的取整,如果大于0,向上取整;小于0,向下取整。
????????speed?=?(speed>0)?Math.ceil(speed):Math.floor(speed);
????????//3.檢查停止
????????if(ice?!=?json[arrt]){????????????????????????????????
????????????i?=?false;//假如當前值不等于目標值,繼續執行以下操作。
????????????????}????????????????????????????????
??????????????if(arrt?==?'opacity'){
??????????????????//針對IE瀏覽器
??????????????????obj.style.filter?=?'alpha(opacity:'+(ice+speed)+')';
??????????????????//針對FireFox(火狐瀏覽器)/Chrom(谷歌瀏覽器)
??????????????????obj.style.opacity?=?(ice+speed)/100;?
??????????????????}else{
??????????????????obj.style[arrt]?=?ice?+?speed?+?'px';??
??????????????????????}????????????????
????????????}
????????if(i){//假如i成立(等于true),關閉計時器
????????????clearInterval(obj.timer);
????????????if(func){//判斷是否還有后調函數????
????????????????func();
????????????}????????????????
??????????}
????????},30);
????}



正在回答

1 回答

var?i?=?true;這句話放在定時器里面 for循環前面 。

因為flag如果定義在定期器外,flag只執行了一遍,當循環了一次后,flag變成了false就不會再改變了。

flag一直都是false,就無法關閉定時器和執行下一個函數了。


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

手刃情人 提問者

Think you
2016-04-21 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么這個運動框架調用不后調函數

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

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

幫助反饋 APP下載

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

公眾號

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