2016-01-21 77 views
0

我的頁面上有一段運行的動畫,我認爲它會導致這個特定的動畫結局,然後有時候還沒有完成動畫。Jquery Animate無法完成動畫的問題

我已經寫了這個動畫在頁面上的一些百分比條。

我已經嘗試添加一個超時函數,以便它給予其他動畫一些時間完成,但超時不起作用,它似乎在頁面加載後立即啓動。任何確保我的百分比完成的幫助將是驚人的

function dopercentage() 
{ 
    $('.bar-percentage[data-percentage]').each(function() { 
    var progress = $(this); 
    var percentage = Math.ceil($(this).attr('data-percentage')); 
    $({countNum: 0}).animate({countNum: percentage}, { 
    duration: 1000, 
    easing:'swing', 
    step: function() { 
     // What todo on every count 
    var pct = ''; 
    if(percentage == 0){ 
     pct = Math.floor(this.countNum) + '%'; 
    }else{ 
     pct = Math.floor(this.countNum+1) + '%'; 
    } 
     progress.text(pct) && progress.siblings().children().css('width',pct); 
    } 
    }); 
}); 
} 

$(document).ready(function() { 
    setTimeout(dopercentage(), 1000); 
}); 

這裏是什麼應該被動畫一個HTML的例子,但在91%

<div id="bar-5" class="bar-main-container" style="margin-left:auto;margin-right:auto;background:#cb0050;max-width: 250px;"> 
     <div class="wrap"> 
      <div id="bar-percentage13" class="bar-percentage" data-percentage="100">91%</div> 
      <div class="bar-container"> 
      <div class="bar" style="width: 91%;"></div> 
      </div> 
     </div> 
     </div> 
+0

請創建工作的例子。 –

回答

0

您立即調用dopercentage()失敗,則傳遞的結果設置超時。

setTimeout需要函數參考,而不是函數調用的結果。

只是傳遞函數引用(名稱):

$(document).ready(function() { 
    setTimeout(dopercentage, 1000); 
}); 

除此之外,我不得不刪除從樣品初始91%的文字。當代碼不燒我結束了與你的測試值:)

的jsfiddle:https://jsfiddle.net/Ly3vj12d/1/

+0

謝謝,寬度實際上並不在基本代碼中,只是當我從屏幕抓取代碼中複製時我所複製的。 我遇到的問題是當我的頁面有更多的對象進行動畫製作時,每個對象只動畫到91%-99%之間的某個隨機數。 – Chris

+0

@Chris:你更新你的例子? –