2009-03-04 28 views
9

Dưới đây là những gì tôi có (tất cả được tạo ra tự động, nếu mà làm cho một sự khác biệt):jQuery là gì nhất "nhấp vào hình thu nhỏ và thay đổi hình ảnh chính" mô-đun?

  • Một danh sách các hình ảnh
  • Một chú thích cho mỗi hình ảnh
  • Một thumbnail cho mỗi hình ảnh

Trang nên tải với một hình ảnh có kích thước đầy đủ và tất cả hình thu nhỏ. Khi người dùng nhấp vào hình thu nhỏ, hình ảnh có kích thước đầy đủ sẽ hiển thị hình ảnh mới có chú thích của nó. Nếu họ nhấp vào hình thu nhỏ khác, hình ảnh (và chú thích) thay đổi một lần nữa.

Nó không phải là rất phức tạp. Tôi đã tấn công với nhau một giải pháp cách đây vài tháng, nhưng tôi cần phải làm lại và tôi đang xem mã độc này và nghĩ rằng phải có một cách tốt hơn (và biết jQuery, một người khác đã thực hiện nó và hoàn thành nó tốt).

Suy nghĩ? Liên kết?

Cảm ơn!

+0

Chúng tôi làm tương tự với thay đổi nhỏ. MouseOver Thumnail thay đổi hình ảnh chính, nhưng không dính, Click ngón tay cái để làm cho hình ảnh chính dính.Người dùng có thể chuyển chuột qua Thumbs để xem lại, sau đó nhấp chuột vào Thumbs mà họ muốn; nếu chuột di chuyển qua nhiều ngón tay cái, hình ảnh chính sẽ hoàn nguyên khi chuột-OUT của tất cả các ngón tay cái – Kristen

Trả lời

3

Dưới đây là một trông khá đẹp và được viết bằng jQuery: Photo Slider

Và đây là một mà tôi thích một chút tốt hơn: Galleria

+0

Oooh, Galleria đẹp và chính xác những gì tôi đang tìm kiếm! Cảm ơn! – Eileen

46

Hầu hết các câu trả lời ở đây giống như quay một con ruồi với một cuốn kinh điển !!

$('#thumbs img').click(function(){ 
    $('#largeImage').attr('src',$(this).attr('src').replace('thumb','large')); 
    $('#description').html($(this).attr('alt')); 
}); 

đây là tất cả những gì bạn cần .. 4 dòng mã.

xem ở đây: gallery-in-4-lines

+3

với bạn. tất cả mọi thứ khác có vẻ như quá mức –

+0

Tôi HOÀN TOÀN muốn tất cả 'câu trả lời' đều tốt - một câu trả lời hoàn hảo và một nơi tuyệt vời để bắt đầu ... thêm nhiều hơn nếu bạn cần, nhưng điều này sẽ giảm xuống. - cám ơn – jpmyob

2

Building tắt của krembo99's answer he linked here, tôi muốn chia sẻ giải pháp của tôi như tôi đã tải lên hàng trăm bức ảnh khi khách hàng của tôi đã yêu cầu một tính năng như thế này. Với ý nghĩ đó, bằng cách thêm một vài dòng phụ vào mã được cung cấp, tôi đã có thể nhận được một giải pháp phù hợp với các tham số của tôi.

Tôi cũng đang làm việc với các hình ảnh nhỏ hơn, vì vậy tôi không cần phải thực hiện việc tạo một phiên bản lớn của cùng một tệp với các phiên bản lớn &.

$('.thumbnails img').click(function(){ 

// Grab img.thumb class src attribute 
// NOTE: ALL img tags must have use this class, 
// otherwise you can't click back to the first image. 

var thumbSrc = $('.thumb').attr('src'); 

// Grab img#largeImage src attribute 
var largeSrc = $('#largeImage').attr('src'); 

    // Use variables to replace src instead of relying on file names. 
    $('#largeImage').attr('src',$(this).attr('src').replace(thumbSrc,largeSrc)); 
    $('#description').html($(this).attr('alt')); 

}); 

Dưới đây là giao diện HTML của tôi.

<img src="path/to/file1.jpg" id="largeImage" class="thumb"> 
    <div id="description">1st image Description</div> 

    <div class="thumbnails"> 

    <img src="path/to/file1.jpg" class="thumb" alt="1st image description"> 
    <img src="path/to/file2.jpg" class="thumb"alt="2nd image description"> 
    <img src="path/to/file3.jpg" class="thumb" alt="3rd image description"> 
    <img src="path/to/file4.jpg" class="thumb" alt="4th image description"> 
    <img src="path/to/file5.jpg" class="thumb" alt="5th image description"> 

    </div> 
Các vấn đề liên quan