2012-07-16 205 views
0

我有以下代碼滾動表的滾動條jQuery的延遲/暫停動畫

$('.myTable').animate({ 
    scrollTop: myPositon 
}, 45000, function() { 

}); 

現在我有以下的事件監聽滾動條位置

$('.myTable').bind('scroll', function() { 
    //if the scroll bar reaches certain position 
    //pause the scrolling for 5 seconds 

}); 

我的代碼檢查滾動條是否到達特定位置,問題是如何在綁定函數中暫停滾動/或動畫5秒鐘,然後自動恢復動畫?

我知道有延遲和clearQueue。但調用:

$('.myTable').delay(5000) or $('.myTable').clearQueue似乎有什麼影響

+0

你想使該表不可滾動?只需刪除溢出滾動條:隱藏 – Bergi 2012-07-16 17:12:53

+0

你可以在jsfiddle或jsbin中提供測試用例嗎? – 2012-07-16 17:12:54

+0

而不是暫停和恢復動畫,只是動畫第一步,暫停5秒,然後爲下一步做一個新的動畫?還有一個'step'選項,您可以指定動畫在回放過程中進行回調 – MrOBrian 2012-07-16 17:20:30

回答

0

可能低於HTML解決您的問題

<html> 
    <head> 
     <style> 
      div { 
       position: absolute; 
       background-color: #abc; 
       left: 0px; 
       top:30px; 
       width: 60px; 
       height: 60px; 
       margin: 5px; 
      } 
     </style> 
     <script src="http://code.jquery.com/jquery-latest.js"></script> 
    </head> 

    <body> 
     <button id="go">Go</button> 
     <button id="stop">STOP!</button> 
     <button id="back">Back</button> 
     <div class="block"></div> 
     <script> 
      /* Start animation */ 
      $("#go").click(function() { 
       $(".block").animate({ 
        left: '+=100px' 
       }, 2000); 
      }); 

      /* Stop animation when button is clicked */ 
      $("#stop").click(function() { 
       $(".block").stop(); 
       setTimeout(function() { 
        $(".block").animate({ 
         left: '+=100px' 
        }, 2000) 
       }, 1000); 
      }); 

      /* Start animation in the opposite direction */ 
      $("#back").click(function() { 
       $(".block").animate({ 
        left: '-=100px' 
       }, 2000); 
      }); 
     </script> 
    </body> 
</html>