2012-11-05 181 views
0

我還在學習JavaScript並需要一些幫助。我正在製作下一個和上一個按鈕,導致滾動到頁面上的下一個或上一個<td>'s。我正在試圖將這個實現到virb站點的現有結構。 標記看起來是這樣的:下一個/上一個按鈕onClick滾動到下一個和上一個​​的

div id="next">next</div><div id="prev">prev</div> 
<table> 
<tr><td>code that includes img</td></tr> 
<tr><td>code that includes img</td></tr> 
<tr><td>code that includes img</td></tr> 
<tr><td>code that includes img</td></tr> 
<tr><td>code that includes img</td></tr> 
</table> 

這是我的工作腳本:

jQuery.easing.def = "easeInOutQuad"; 
    $("#next").click(function(){ 
     //$(this).animate(function(){ 
      $('html, body').animate({ 
       scrollLeft: $("td").next.offset().left 
       }, 600); 
     //}); 

    });​ 

​Here is the jsFiddle我的工作

+0

這裏是更新的小提琴http://jsfiddle.net/garretthaas/kzqVp/8/ – glh16

回答

0

以下內容會跟蹤您當前要查看的項目。你需要一個類似的thig來減少'prev'例程中的索引。

您可能還需要添加延遲或事件截止點,以便動畫過程中的多次點擊不會將currentIdx的值取爲高於或低於要顯示的項目範圍。

var currentIdx = 0; 
jQuery.easing.def = "easeInOutQuad"; 
     $("#next").click(function(){ 

      //$(this).animate(function(){ 
       $('html, body').animate({ 
        scrollLeft: $("td").eq(currentIdx).offset().left 
        }, 600); 
       currentIdx++;  
      //}); 
     }); 
+0

謝謝。我想我現在明白了。我將.eq(currentIdx)更改爲.eq(currentIdx + 1),因爲有一次返回第一項的點擊。當我創建了遞減的代碼位時,它也起作用了。這裏是更新代碼的JSFiddle ...查看我編輯的任何問題? [http://jsfiddle.net/garretthaas/kzqVp/12/](http://jsfiddle.net/garretthaas/kzqVp/12/) – glh16

+0

小提琴似乎很適合我:-) –

+0

太棒了。再次感謝。 – glh16

1

嘗試:

scrollLeft: $("td").next().offset().left 
+0

謝謝!工作,但只有一次點擊。當我再次點擊下一張圖像時,它不會繼續顯示下一張圖像。我會做更多的測試,但我仍然接受建議。 – glh16

+0

這是更新的小提琴jsfiddle.net/garretthaas/kzqVp/8 – glh16

相關問題