2014-07-14 114 views
0

好吧,這看起來應該很簡單,但我無法弄清楚。我從另一個開發人員那裏獲得了一段代碼,我負責更改頁面加載而不是滾動。我試圖改變我能想到的一切(例如將.bind更改爲.loadjQuery(this).bind('inview', function(event,visible)$(document).ready(function()),但沒有任何結果。我該如何才能讓這些數字只在初始頁面加載時動畫?如何更改jQuery在頁面加載時觸發

// Animate any number 
    jQuery('.animateNumber').each(function(){ 

     var value = new Number; 

     // Grab contents of element and turn it into a number 
     value = jQuery(this).text(); 
     value = parseInt(value); 

     // Set the starting text to 0 
     jQuery(this).text('0'); 


     // Animate to correct value 
     jQuery(this).bind('inview', function(event,visible) { 
      if(visible == true) { 
       jQuery(this).animateNumber(
        { 
         number: value, 

        }, 
        1000 
       ) 
      } 
     }); 

    }); 

UPDATE

我已經改變了代碼以下,並且在Firefox中工作正常,但它無法在Chrome動畫。任何人都知道爲什麼會這樣?

// Animate any number 
    jQuery('.animateNumber').each(function(){ 

     var value = new Number; 

     // Grab contents of element and turn it into a number 
     value = jQuery(this).text(); 
     value = parseInt(value); 

     // Set the starting text to 0 
     jQuery(this).text('0'); 


     // Animate to correct value 

       jQuery(this).animateNumber(
        { 
         number: value 

        }, 
        1000 
       ); 


       }); 

回答

0

只是包裝了一切準備文檔中

$(document).ready(function() { 
    //Your code 
}); 

編輯:看你的代碼,看起來像:

jQuery(this).bind('inview', function(event,visible) { 

每次你讓元素的時間將被解僱可見,所以當你向下滾動並備份時,函數會再次運行......我會建議刪除它,if語句正好在下面,使你的代碼看起來像這樣:

// Animate any number 
jQuery('.animateNumber').each(function(){ 

    var value = new Number; 

    // Grab contents of element and turn it into a number 
    value = jQuery(this).text(); 
    value = parseInt(value); 

    // Set the starting text to 0 
    jQuery(this).text('0'); 


    // Animate to correct value 
      jQuery(this).animateNumber(
       { 
        number: value, 

       }, 
       1000 
      ); 

如果它打破了別的東西,你也可以創建一個全局變量,這將阻止它執行一個以上的時間:

var numbersAnimate = true; 
// Animate any number 
jQuery('.animateNumber').each(function(){ 

    var value = new Number; 

    // Grab contents of element and turn it into a number 
    value = jQuery(this).text(); 
    value = parseInt(value); 

    // Set the starting text to 0 
    jQuery(this).text('0'); 


    // Animate to correct value 
    jQuery(this).bind('inview', function(event,visible) { 
     if(visible == true && numbersAnimate == true) { 
      numbersAnimate = false; 
      jQuery(this).animateNumber(
       { 
        number: value, 

       }, 
       1000 
      ) 
     } 
    }); 

雖然,我不會推薦它...也許是暫時最多修復

+1

或者作爲簡寫,您可以執行'$(function(){/ * your code * /});' – dave

+0

我嘗試了兩種建議的解決方案,並打破了頁面上的其他項目。如果你能看到我正在談論的實際頁面,這也許會有所幫助。 [見這裏。](http://www.oakwoodsys.com/)我試圖改變的項目是主標題下的統計數據。 – mcography

相關問題