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

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

定時器沒有關閉

定時器不會關閉了,一定都在運行,只是speed是0不在增加而已,

怎么樣讓定時器關閉呢

正在回答

2 回答

分析:var flag = true; ? 應該放進for(var attr in json){} 中去 如果不放進去的話???? 雖然效果是一樣的 但是定時器一直就沒有停止下來 ????可以分別在兩個 if( iCur !=json[attr]) 和 if(flag) 里面添加console.log(); 來調用查看定時器是否關閉?


原因: 如果var flag = true; 放在 setInterval();的外面 . 在if(iCur !=json[attr])中 flag=flase;? 由于flag一直等于flase 就無法執行if(flag)里面的內容

解決: 1.可以將var flag = true ; 放進for(var attr in json){} 里面 ????????2.可以在if(iCur!=json[atter]) 后面加上一個else{ flag = true;}

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

中古 提問者

先謝謝,已經解決了,個人感覺應該把var flag = true ;放進setInterval與for(var attr in json){} 之中,如果按你上述方法的話,json中傳的最后一個動畫如果完成了,前面的沒有完成,那動畫也就結束了,直接運行fn函數的動畫了
2015-04-15 回復 有任何疑惑可以回復我~
#2

Ripple07 回復 中古 提問者

可是把var flag = true放進serInterval中的話,第一個運動完成了就無法進行了呀,實現不了。。。還修改了別的地方么?
2015-06-29 回復 有任何疑惑可以回復我~

這樣解決了timer沒關閉的問題。每次循環中如果有一個屬性沒有達到目標值,則flag為false

function startMove(obj,json,fn){
? ?var flag = true;
? ?clearInterval(obj.timer);
? ?obj.timer = setInterval(function(){
? ? ? ?for(var attr in json){
? ? ? ? ? ?var cur = 0;
? ? ? ? ? ?iTarget = json[attr];
? ? ? ? ? ?if(attr == 'opacity'){
? ? ? ? ? ? ? ?cur = Math.round(parseFloat(getStyle(obj,attr))*100);
? ? ? ? ? ?}else{
? ? ? ? ? ? ? ?cur = parseInt(getStyle(obj,attr));
? ? ? ? ? ?}

? ? ? ? ? ?var speed = (iTarget - cur)/8;
? ? ? ? ? ?speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
? ? ? ? ? ?if( cur == iTarget ){
? ? ? ? ? ? ?flag = true;
? ? ? ? ? ?}else{
? ? ? ? ? ? ?flag = false;
? ? ? ? ? ?}
? ? ? ? ? ?if( attr == 'opacity'){
? ? ? ? ? ? ? ?obj.style.filter = 'alpha(opacity' + cur + speed + ')';
? ? ? ? ? ? ? ?obj.style.opacity = (cur + speed)/100;
? ? ? ? ? ?}else{
? ? ? ? ? ? ? ?obj.style[attr] = cur + speed + "px";
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?if(flag){
? ? ? ? ? ?clearInterval(obj.timer);
? ? ? ? ? ?if(fn){
? ? ? ? ? ? ? ?fn();
? ? ? ? ? ?}
? ? ? ?}
? ?},30);
}

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

qq_請叫我小強_0

沒卵用
2016-04-04 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JS動畫效果
  • 參與學習       113918    人
  • 解答問題       1502    個

通過本課程JS動畫的學習,從簡單動畫開始,逐步深入各種動畫框架封裝

進入課程

定時器沒有關閉

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

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

幫助反饋 APP下載

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

公眾號

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