2014-11-13 4 views
0

У меня есть простая галерея, которая скрывает и показывает изображения. Он отлично работает, но я не удовлетворен своим подходом. Мой javascript казался излишним. Можете ли вы проверить мой код и дать лучшее представление о том, как его улучшить.Попытка получить лучший подход для простой галереи изображений

Это мой HTML

<div class="big_img_wrapper"> 
        <img src="<?= IMAGEPATH ?>front_page/phinfo/house_rentals/westgate/big_img_1.JPG" id="big_img_1" class="big_img"> 
        <img src="<?= IMAGEPATH ?>front_page/phinfo/house_rentals/westgate/big_img_2.JPG" id="big_img_2" class="big_img"> 
        <img src="<?= IMAGEPATH ?>front_page/phinfo/house_rentals/westgate/big_img_3.JPG" id="big_img_3" class="big_img"> 
        <img src="<?= IMAGEPATH ?>front_page/phinfo/house_rentals/westgate/big_img_4.JPG" id="big_img_4" class="big_img"> 
        <img src="<?= IMAGEPATH ?>front_page/phinfo/house_rentals/westgate/big_img_5.JPG" id="big_img_5" class="big_img"> 
        <img src="<?= IMAGEPATH ?>front_page/phinfo/house_rentals/westgate/big_img_6.JPG" id="big_img_6" class="big_img"> 
       </div> 
       <div class="thumbs_img_wrapper"> 
        <img src="<?= IMAGEPATH ?>front_page/phinfo/house_rentals/westgate/thumbnails/thumbs_img_1.jpg" id="thumbs_img_1" calss="thumbs_img"> 
        <img src="<?= IMAGEPATH ?>front_page/phinfo/house_rentals/westgate/thumbnails/thumbs_img_2.jpg" id="thumbs_img_2" calss="thumbs_img"> 
        <img src="<?= IMAGEPATH ?>front_page/phinfo/house_rentals/westgate/thumbnails/thumbs_img_3.jpg" id="thumbs_img_3" calss="thumbs_img"> 
        <img src="<?= IMAGEPATH ?>front_page/phinfo/house_rentals/westgate/thumbnails/thumbs_img_4.jpg" id="thumbs_img_4" calss="thumbs_img"> 
        <img src="<?= IMAGEPATH ?>front_page/phinfo/house_rentals/westgate/thumbnails/thumbs_img_5.jpg" id="thumbs_img_5" calss="thumbs_img"> 
        <img src="<?= IMAGEPATH ?>front_page/phinfo/house_rentals/westgate/thumbnails/thumbs_img_6.jpg" id="thumbs_img_6" calss="thumbs_img"> 
       </div> 

Это мой CSS

.big_img_wrapper, .big_img_wrapper img{ 
      width: 370px; 
      height: 246px; 
      /*display: none;*/ 
     } 
     .thumbs_img_wrapper{ 
      padding:0; 
     } 
     .thumbs_img_wrapper img{ 
      width: 111px; 
      height: 70px; 
      margin: 14px 0 0 14px; 
     } 
     #thumbs_img_1, #thumbs_img_4{ 
      margin: 14px 0 0 0; 
     } 

И, наконец, вот мой JQuery

$(document).ready(function(){ 

    $('img.big_img').hide(); // Hides all big images 
    $('img#big_img_1').fadeIn('slow'); // Serve as default image 

    $('img#thumbs_img_1').click(function(){ 
     $('img.big_img').hide(); // Hides all big images 
     $('img#big_img_1').fadeIn('slow'); //Slowly fades in selected image 
    }); 

    $('img#thumbs_img_2').click(function(){ 
     $('img.big_img').hide(); // Hides all big images 
     $('img#big_img_2').fadeIn('slow'); //Slowly fades in selected image 
    }); 

    $('img#thumbs_img_3').click(function(){ 
     $('img.big_img').hide(); // Hides all big images 
     $('img#big_img_3').fadeIn('slow'); //Slowly fades in selected image 
    }); 
    $('img#thumbs_img_4').click(function(){ 
     $('img.big_img').hide(); // Hides all big images 
     $('img#big_img_4').fadeIn('slow'); //Slowly fades in selected image 
    }); 
    $('img#thumbs_img_5').click(function(){ 
     $('img.big_img').hide(); // Hides all big images 
     $('img#big_img_5').fadeIn('slow'); //Slowly fades in selected image 
    }); 
    $('img#thumbs_img_6').click(function(){ 
     $('img.big_img').hide(); // Hides all big images 
     $('img#big_img_6').fadeIn('slow'); //Slowly fades in selected image 
    }); 

}); 

Я готов использовать плагин для улучшения улучшений. Спасибо!

+1

Учитывая характер вопроса, он может быть лучше подходит для http://codereview.stackexchange.com/, а не для переполнения стека. –

+0

Спасибо за ваш совет. Я уже загрузил его в codereview. Ссылка здесь. http://codereview.stackexchange.com/questions/69706/trying-to-get-better-approach-for-simple-image-gallery – Rodge

ответ

1

вместо использования .click() событие для каждого эскиза вы можете использовать:

$('img.thumbs_img').click(function(){ 
     $('img.big_img').hide(); // Hides all big images 
     var id = $(this).attr('id'); 
     id = id.replace("thumbs_img_", "big_img_"); 
     $('img#'+id).fadeIn('slow'); //Slowly fades in selected image 
    }); 

до сих пор не уверен, что это лучше.

+1

Хорошее решение, но вам нужно улучшить выбор большого img. ваш идентификатор, который вы получаете, является идентификатором большого пальца типа 'thumbs_img_3', и вам нужно выбрать' $ (img # + big_img_3', а не '$ (img # + thumbs_img_3', чтобы угаснуть его. Возможно, с чем-то вроде' id.replace («большие пальцы», «большой») ' –

+0

не заметил, что редактирование для лучшего решения сразу. :) –

+1

Последнее изменение:' id = str.replace' должно быть 'id = id.replace', я думаю. что я думаю, что это довольно хорошо. –

Смежные вопросы