Сейчас: 22:28:17   23-го апреля 2024 г.
UsefulScript.ruСкриптыГрафикаГалерея изображений
9
33

Скрипт галереи изображений на jQuery

Вот пришла идея сделать простенький скрипт галереи изображений. При клике по изображению из галереи, оно будет плавно увеличиваться до своих истинных размеров, а при повторном клике, либо клике по другому изображению галереи, оно будет исчезать. Все это естественно будет происходить без перезагрузки странички. Т.к. изображения располагаются в разных местах странички, то при увеличении они одновременно с увеличением будет перемещаться в центр экрана. Сделано это специально для больших изображений, чтобы их края при увеличении не залезали далеко за границы экрана.


Ознакомиться с наглядной работой описанного выше скрипта галереи изображений можно на примере, располагающемся чуть ниже. Для этого покликайте по изображениям:



Получается довольно-таки интересный вариант для размещения картинок (фото) на своем сайте, но у данного скрипта есть и свой минус - при переходе на страничку скрипту необходимо загружать сразу все изображения, что при большом количестве изображений и при их больших размерах может быть накладно.


Для работы скрипта необходимо подключать библиотеку jQuery следующим образом:

JavaScript код:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>

Чтобы получить галерею изображений, подобную той, которую мы продемонстрировали на данной страничке, Вам понадобится поместить изображения в таблицу следующим образом:

HTML код:
<table class="gallery">
<
tr>
<
td><img src="image/hit_counter.png" alt=""></td>
<
td><img src="image/csssprites_com2.png" alt=""></td>
<
td><img src="image/li_33.png" alt=""></td>
</
tr>

<
tr>
<
td><img src="image/img_1.png" alt=""></td>
<
td><img src="image/goqr_me.png" alt=""></td>
<
td><img src="image/pingdom_2.png" alt=""></td>
</
tr>

<
tr>
<
td><img src="image/pingdom_2.png" alt=""></td>
<
td><img src="image/img_2.png" alt=""></td>
<
td><img src="image/li_33.png" alt=""></td>
</
tr>
</
table>

Для нормальной работы скрипта галереи необходимо прописать следующие стили:

HTML код:
<style type="text/css">
 .
gallery width:100%; margin:0padding:0table-layout:fixedborder-spacing:7px; }
 .
gallery td width:200pxheight:140pxpadding:5pxtext-align:center;
         
background-color:#F0F0F0; border-radius:6px; border:1px solid #000000; }
 
.gallery img max-width:100%; max-height:100%; cursor:pointer; }
 .
new_image position:absolutecursor:pointer; }
</
style>

Теперь остается лишь добавить JavaScript код, который будет увеличивать и центрировать изображения по клику и скрывать их при повторном клике по увеличенному изображению. Для этого скопируйте данный JavaScript код:

JavaScript код:
<script type="text/javascript">
$(
document).ready(function(){
$(
".gallery img").click(function(){
    $(
".new_image").remove();
    $(
this).clone().addClass("new_image").appendTo("body");

    var 
img_width = $(".new_image").width();
    var 
img_height = $(".new_image").height();

    $(
".new_image").width($(this).width()).height($(this).height());
    $(
".new_image").offset({top: $(this).offset().topleft: $(this).offset().left});
    $(
".new_image").animate({
        
widthimg_width,
        
heightimg_height,
        
top: $(window).height()/+ $(window).scrollTop() - img_height/2,
        
left: $(window).width()/+ $(window).scrollLeft() - img_width/2
    
}, 800);
});

$(
document).on("click",".new_image",function(){ $(".new_image").remove(); });
});
</script>

Данный скрипт галереи изображений может быть применена взамен скрипта спойлера, когда необходимо разместить несколько изображений, но при этом неплохо было бы чтобы их было видно (хоть и в уменьшенном размере).


Плюсом данного скрипта является то, что один раз добавив CSS стили и JavaScript код, потом очень легко добавлять новые изображения, т.к. не требуется для каждого из них прописывать стили, а также размеры до и после увеличения.

Дата создания: 18:52:59 02.10.2014 г.
Посещений: 9234 раз(а).

Комментарии посетителей (4 шт.):
Константин
0
# 2290
(07:36:04  01.03.2015 г.)

Добрый день! А можно добавить в эту галерею по краям кнопки для прокручивания следующих картинок как вконтакте? Заранее спасибо.
Ответить

Administrator
0
# 2293
(15:48:21  01.03.2015 г.)

Тут малыми изменениями не обойтись. Скрипт придется основательно переработать.
Ответить

Дмитрий
-1
# 2595
(11:56:46  27.07.2015 г.)

При клике на открывшееся изображение оно не убирается обратно, так же как если кликнуть в пустое поле.
Ответить

Administrator
1
# 2596
(20:17:53  27.07.2015 г.)

Все работает. Проверял в разных браузерах. Изображение пропадает, если по нему кликнуть. На этой страничке в примере скрипт же работает!
Ответить

Закрыть
Ваше имя:
295 + 9 =
Добавить комментарий:
Ваше имя:
295 + 9 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 5

Какую CMS для сайта Вы предпочитаете?