2012-11-20 72 views
0

我有五個圖像需要作爲圖庫進行迭代。所以當用戶點擊一個「前進按鈕」時,數組中的下一個圖像顯示在div中。並且還點擊「後退按鈕」。對不起,如果這是愚蠢的編碼,但我在這裏很新。使用前進和後退按鈕對圖像進行迭代

$(document).ready(function() { 
    // when thumbnail is clicked 

    $("img#thumb").click(function() { 
     var imgpath = $(this).attr("src"); 
     $("img#cover").attr("src", imgpath); 

    }); 

    $(function() { 
     $("img#thumb").bind('click', function() { 
      var img = $(this).clone(); //this clones the img, so you do not need to re-load that using src path 
      $("img#cover").hide().html(img).fadeIn(500); //remove .hide() segment if you just are hiding by css rules 

     }); 
    }); 

    //when the nextimage link is clicked 
    var imgs = ["images/exteriors/abandonned/img0.jpg", 
       "images/exteriors/abandonned/img1.jpg", 
       "images/exteriors/abandonned/img2.jpg"]; 

    $("img#nextimage").click(function() { 

     $.each(imgs, function() { 

      $("img#cover").attr("src", imgs); // I want to iterate each image and display when it is clicked 
     }); 

    }); 
}); 

HTML:

<div id="thumbs"> <!--gallery thumbs--> 
<img id="thumb1" src="images/exteriors/abandonned/img0.jpg" width="100px" height="80px" class="" /><br> 
<img id="thumb2" src="images/exteriors/abandonned/img1.jpg" width="100px" height="80px" class="" /><br> 
<img id="thumb3" src="images/exteriors/abandonned/img2.jpg" width="100px" height="80px" class="" /><br> 
<img id="thumb" src="images/exteriors/abandonned/img3.jpg" width="100px" height="80px" class="" /><br> 
<img id="thumb" src="images/exteriors/abandonned/img3.jpg" width="100px" height="80px" class="" /><br> 
</div> 


+0

那麼,有什麼問題? – Blazemonger

回答

0

你並不需要在一個或下一個按鈕,每一次點擊迭代的圖像;相反,使用變量將索引存儲到imgs數組中,並讓您的click處理程序更新該索引,然後使用該數組中索引處的URL更新標記的src屬性。也許這樣的事情,可能是:

var imgindex = 0; 

$('img#nextimage').click(function() { 
    imgindex++; // increment the index into array 'imgs' 
    if (imgindex > (imgs.length - 1)) { imgindex = 0; }; // if we just walked off the far end of the array, reset the index to zero (loop around to the 1st image) 
    $('img#cover').attr('src', imgs[imgindex]); // update the img src 
}); 

$('img#previmage').click(function() { 
    imgindex--; // decrement the array index 
    if (imgindex < 0) { imgindex = (images.length - 1); }; // if we just walked off the near end of the array, loop around to the last image 
    $('img#cover').attr('src', imgs[imgindex]); 
}); 
+0

我注意到你有一個條件,如果索引大於數組長度,循環會重置。我如何知道我的陣列是多久?這是值中字符的長度嗎? – johnnyzoo

+0

我按照你的說法做了一些工作。圖像切換,但它不「粘」它翻轉回到前一個!它只是閃爍。 – johnnyzoo

+0

我在上面的例子中通過它的長度屬性獲得了數組的長度 - 'imgs.length'。該屬性存在於所有JS數組對象中,並且包含一個數字,指示數組中有多少個元素 - 由於數組的索引從零開始,從length屬性中減1會給出最後一個元素的索引。關於不變的變化 - 我想這與其他事件處理程序之一有關。我建議先從你的代碼開始,然後回答我的答案,然後從那裏開始構建 - 我不知道我在這裏看到什麼可能是錯的。 –

相關問題