2012-11-09 33 views
0

我是新來的jQuery,我不知道如何做很多。jQuery的航點功能

我有jQuery waypoint plugin,我也有一個動畫進度條的功能。我需要做的是在達到航點時爲進度條設置動畫效果。我有兩段代碼,但似乎不能將它們放在一起。

我需要把這個:

$(function() { 
    $(".meter > span").each(function() { 
     $(this) 
      .data("origWidth", $(this).width()) 
      .width(0) 
      .animate({ 
       width: $(this).data("origWidth") 
     }, 1200); 
    }); 
}); 

,在這裏面:

$(function() { 
    $('#skills-1').waypoint(function() { 
     (function here) 
    }); 
}); 

回答

0
$(function() { 
    $('#skills-1').waypoint(function() { 
     $(".meter > span").each(function() { 
      $(this) 
       .data("origWidth", $(this).width()) 
       .width(0) 
       .animate({ 
        width: $(this).data("origWidth") 
      }, 1200); 
     }); 
    }); 
}); 

只要把裏面,沒有功能的包裝。

或者,如果你有多個航點,這是更好地做一個獨立的功能,如:

function animateProgressBar(){ 
    $(".meter > span").each(function() { 
     $(this) 
      .data("origWidth", $(this).width()) 
      .width(0) 
      .animate({ 
       width: $(this).data("origWidth") 
     }, 1200); 
    }); 
} 
$('#skills-1').waypoint(animateProgressBar); 
$('#skills-2').waypoint(animateProgressBar); 
+0

我喜歡第二個解決方案,因爲我可能有多個航點,但在實現它,我看到animateProgressBar函數在頁面加載時運行,而不是在到達第一個航點時運行。任何想法,如何阻止它運行,直到它應該。 – user1339113

+0

它不應該運行,直到它被稱爲... 也許您的航點不正確設置? – ahren