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

Мы будем использовать плагин jQuery Touchwipe , так что навигация может осуществляться с помощью характерных манипуляций с экраном на iPhone и iPad.

Разметка HTML

В коде HTML мы будем использовать основной контейнер с классом “rg-gallery ”. Также он будет иметь одинаковый с классом идентификатор. В другом элементе div с классом “rg-thumbs” будет размещаться структура для карусели Elastislide:

Предыдущий Следующий

Миниатюры будут иметь два атрибута data , которые будут использоваться позже в нашем коде JavaScript. Атрибут “data-large” содержит путь к большому изображению, а атрибут “data-description” содержит подпись, которая будет выводиться под текущим большим изображением.

Для структуры области просмотра больших изображений используется шаблон jQuery, который добавляется в заголовке нашего документа:

{{if itemsCount > 1}} Предыдущее изображение Следующее изображение {{/if}}

Мы добавляем условие, что навигация будет выводится только в случае наличия более одного изображения. Контейнер “rg-image ” будет использоваться для добавления большого изображения.

CSS

Кроме настройки нескольких параметров (например, поля и отступы для миниатюр в карусели Elastislide) нужно задать стили для остальных элементов галереи..

Элемент “rg-image-wrapper ”, который используется в шаблоне jQuery, будет иметь относительное позиционирование и полупрозрачное повторяющееся изображение в качестве фона. Рамка будет иметь скругленные углы и минимально допустимую высоту 20 px:

Rg-image-wrapper{ position:relative; padding:20px 30px; background:transparent url(../images/black.png) repeat top left; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px; min-height:20px; }

Контейнер, который используется для добавления большого изображения будет иметь относительное позиционирование и высоту строки 0. Добавим для него выравнивание текста по центру мы заставим все строчные элементы выравниваться по центру. Но так как мы не используем для изображения “display:block ”, нужно установить высоту строки равной 0. Таким образом, не будет зазора над изображением, так как оно является строчным элементом по умолчанию:

Rg-image{ position:relative; text-align:center; line-height:0px; }

С помощью задания свойству большого изображения max-width значения 100%, мы добиваемся, чтобы оно всегда оставалось окруженным плавающим контейнером. Мы не нуждаемся в данном свойстве, но если вы хотите ограничить размер области предварительного просмотра, то вам придется устанавливать фиксированную высоту для класса “rg-image ” и изображение будет заполнять его при изменении ширины области просмотра.

Rg-image img{ max-height:100%; max-width:100%; }

Навигационные элементы будут иметь следующие стили:

Rg-image-nav a{ position:absolute; top:0px; left:0px; background:#000 url(../images/nav.png) no-repeat -20% 50%; width:28px; height:100%; text-indent:-9000px; cursor:pointer; opacity:0.3; outline:none; -moz-border-radius: 10px 0px 0px 10px; -webkit-border-radius: 10px 0px 0px 10px; border-radius: 10px 0px 0px 10px; }

Это стиль для левой стрелки, теперь посмотрим на свойства для правой стрелки:

Rg-image-nav a.rg-image-nav-next{ right:0px; left:auto; background-position:115% 50%; -moz-border-radius: 0px 10px 10px 0px; -webkit-border-radius: 0px 10px 10px 0px; border-radius: 0px 10px 10px 0px; }

Так как мы уже определили значение свойства left для элементов в целом, его придется установить в значение auto для правой стрелки.

При наведении курсора мыши стрелки будут становиться более четкими:

Rg-image-nav a:hover{ opacity:0.8; }

Подписи будут иметь следующие стили:

Rg-caption { text-align:center; margin-top:15px; position:relative; } .rg-caption p{ font-size:11px; letter-spacing:2px; font-family: "Trebuchet MS", "Myriad Pro", Arial, sans-serif; line-height:16px; padding:0 15px; text-transform:uppercase; }

Для переключателя установим следующие стили:

Rg-view{ height:30px; } .rg-view a{ display:block; float:right; width:16px; height:16px; margin-right:3px; background:#464646 url(../images/views.png) no-repeat top left; border:3px solid #464646; opacity:0.8; } .rg-view a:hover{ opacity:1.0; } .rg-view a.rg-view-full{ background-position:0px 0px; } .rg-view a.rg-view-selected{ background-color:#6f6f6f; border-color:#6f6f6f; } .rg-view a.rg-view-thumbs{ background-position:0px -16px; }

Индикатор загрузки будет появляться в центре изображения:

Rg-loading{ width:46px; height:46px; position:absolute; top:50%; left:50%; background:#000 url(../images/ajax-loader.gif) no-repeat center center; margin:-23px 0px 0px -23px; z-index:100; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px; opacity:0.7; }

JavaScript

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

Определим некоторые переменные:

// Контейнер галереи var $rgGallery = $("#rg-gallery"), // Контейнер карусели $esCarousel = $rgGallery.find("div.es-carousel-wrapper"), // Пункт карусели $items = $esCarousel.find("ul > li"), // Общее количество пунктов itemsCount = $items.length;

Затем функцию галереи:

Gallery = (function() { //Функция галереи })(); Gallery.init();

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

// Индекс текущего пункта var current = 0, // Режим: карусель || во весь экран mode = "carousel", // Проверка, если одно изображение загружено anim = false, init = function() { // (Не обязательно) предварительная загрузка изображений здесьы... $items.add("").imagesLoaded(function() { // Добавляем опции _addViewModes(); // Добавляем обертку большого изображения _addImageWrapper(); // Выводим первое изображение _showImage($items.eq(current)); }); // Инициализуем карусель _initCarousel(); },

Вызываем плагин Elastislide:

InitCarousel = function() { // Используем плагин elastislide: $esCarousel.show().elastislide({ imageW: 65, onClick: function($item) { if(anim) return false; anim = true; // По нажатию клавиши мыши выводим изображение _showImage($item); // Меняем текущее current = $item.index(); } }); // Устанавливаем текущее для elastislide $esCarousel.elastislide("setCurrent", current); },

Следующая функция выводит переключатели режимов просмотра и управляет ими:

AddViewModes = function() { // Кнопки вверху справа: скрыть / показать карусель var $viewfull = $(""), $viewthumbs = $(""); $rgGallery.prepend($("").append($viewfull).append($viewthumbs)); $viewfull.bind("click.rgGallery", function(event) { $esCarousel.elastislide("destroy").hide(); $viewfull.addClass("rg-view-selected"); $viewthumbs.removeClass("rg-view-selected"); mode = "fullview"; return false; }); $viewthumbs.bind("click.rgGallery", function(event) { _initCarousel(); $viewthumbs.addClass("rg-view-selected"); $viewfull.removeClass("rg-view-selected"); mode = "carousel"; return false; }); },

Функция _addImageWrapper добавляет структуру для большого изображения и кнопки навигации, если общее количество изображений больше, чем одно. Также инициализируются события навигации. Используя плагин jQuery Touchwipe, мы добавляем поддержку навигации с помощью сенсорного экрана и клавиатуры:

AddImageWrapper= function() { // Добавляем структуру для больших изображений и кнопок навигации (если общее количество пунктов > 1) $("#img-wrapper-tmpl").tmpl({itemsCount: itemsCount}).appendTo($rgGallery); if(itemsCount > 1) { // Добавляем навигацию var $navPrev = $rgGallery.find("a.rg-image-nav-prev"), $navNext = $rgGallery.find("a.rg-image-nav-next"), $imgWrapper = $rgGallery.find("div.rg-image"); $navPrev.bind("click.rgGallery", function(event) { _navigate("left"); return false; }); $navNext.bind("click.rgGallery", function(event) { _navigate("right"); return false; }); // Добавляем событие touchwipe для обертки большого изображения $imgWrapper.touchwipe({ wipeLeft: function() { _navigate("right"); }, wipeRight: function() { _navigate("left"); }, preventDefaultEvents: false }); $(document).bind("keyup.rgGallery", function(event) { if (event.keyCode == 39) _navigate("right"); else if (event.keyCode == 37) _navigate("left"); }); } },

Навигация по большим изображениям контролируется следующей функцией:

Navigate = function(dir) { // Навигация по большим изображениям if(anim) return false; anim = true; if(dir === "right") { if(current + 1 >= itemsCount) current = 0; else ++current; } else if(dir === "left") { if(current - 1 < 0) current = itemsCount - 1; else --current; } _showImage($items.eq(current)); },

В зависимости от направления движения мы устанавливаем текущий элемент.

Функция _showImage добавляет большое изображение и его название:

ShowImage = function($item) { // Выводим большое изображение, которое ассоциировано с $item var $loader = $rgGallery.find("div.rg-loading").show(); $items.removeClass("selected"); $item.addClass("selected"); var $thumb = $item.find("img"), largesrc = $thumb.data("large"), title = $thumb.data("description"); $("").load(function() { $rgGallery.find("div.rg-image").empty().append(""); if(title) $rgGallery.find("div.rg-caption").show().children("p").empty().text(title); $loader.hide(); if(mode === "carousel") { $esCarousel.elastislide("reload"); $esCarousel.elastislide("setCurrent", current); } anim = false; }).attr("src", largesrc); }; return { init: init };

Долго выбирал тему для сегодняшнего топика. В итоге заметил, что мы еще не делали подборок с галереями изображений . По моему отличная тема, так как галереи присутствуют у множества сайтов. Откровенно говоря, все они не очень привлекательны. Учитывая нынешние тенденции развития jquery, html5 и т. д. я подумал, ведь должны быть уже намного привлекательней решения чем те, которые встречались мне раньше. Итак. Потратив день, удалось найти огромнейшее количество скриптов. Из всей этой горы я решил отобрать только , ведь я люблю , как вы уже заметили по предыдущим постам.
Галерея изображений применима не только в случае с фотоальбомами . Скрипт можно использовать, думаю, что это даже правильней будет, в качестве портфолио для фотографов, дизайнеров и т. д. Jquery эффекты помогут привлечь внимание посетителей и просто придадут изящности вашему сайту.
Итак. К вашему вниманию коллекция jquery плагинов галерей изображений для сайта .
Не забываем комментировать и помните, чтоб не потерять эту подборку, вы можете добавить ее в избранное, нажав на звездочку внизу статьи.

PHOTOBOXБесплатная, легкая, адаптивная галерея изображений , в которой все эффекты, переходы сделаны средствами css3. Идеальна для создания сайта-потрфолио фотографа.

S GalleryПривлекательный Jquery плагин галереи изображений . Анимация работает с помощью css3.

DIAMONDS.JSОригинальный плагин для создания галереи изображений . Миниатюры имеют форму ромба , что в данный момент очень популярно. Такая форма сделана с помощью css3. Единственный минус этой галереи - это отсутствие лайтбокса, в котором бы открывалось фото в полный размер. То есть потребуется раками прикрутить плагин лайтбокса. Данный скрипт формирует адаптивную сетку изображений в форме ромба.

SuperboxСовременная галерея изображений с использованием Jquery, css3 и html5 . Мы все привыкли, что при клике на превью полное изображение открывается в лайтбоксе (всплывающем окне). Разработчики данного плагина решили, что лайтбокс уже отжил свое. Изображения в этой галереи открываются ниже превью. Посмотрите демо и убедитесь, что такое решение выглядит на много современней.
| Smooth Diagonal Fade GalleryСовременная галерея изображений в которой превью распределяются по всему пространству экрана . Скрипт умеет сканировать папку с фото на сервере, то есть не нужно вставлять каждое изображение по отдельности. Достаточно загрузить картинки в папку на сервере и в настройках указать путь к директории. Далее скрипт все сделает сам.

Gamma GalleryСтильная, легкая, адаптивная галерея изображений с сеткой в стиле Pinterest , которая сейчас стала очень популярна. Скрипт отлично работает как на стационарных компьютерах, так и на мобильных устройствах с любым разрешением экрана. Отличное решение для создания портфолио веб-дизайнера.

THUMBNAIL GRID WITH EXPANDING PREVIEWПлагин представляет собой адаптивную сетку изображений . При клике ниже выводится фото побольше и описание. Хорошо подойдет для создание портфолио.

jGalleryjGallery - это полноэкранная, адаптивная галерея изображений . Легко настраиваются эффекты, переходы и даже стиль.

Glisse.jsПростой, но очень эффектный плагин галереи изображений. Это именно то решение, когда нужно создать фотоальбом. Плагин поддерживает альбомы и имеет очень классный эффект перелистывания.

Mosaic FlowПростая, адаптивная галерея изображений с сеткой в стиле Pinterest .

GalereyaЕще одна стильная галерея с сеткой в стиле Pinterest с фильтром по категориям. Работает в браузерах: Chrome, Safari, Firefox, Opera, IE7+, Android browser, Chrome mobile, Firefox mobile.

least.jsОтличная бесплатная галерея изображений с использованием JQUERY, 5 и CSS3. Она имеет очень привлекательный внешний вид и, несомненно, привлечет внимание ваших посетителей.

flipLightBoxПростенькая галерея изображений. При клике на превью, в лайтбоксе открывается полное изображение.

blueimp GalleryГибкая галерея. Способна выводить в модальном окне не только изображения, но и видео . Отлично работает на сенсорных устройствах. Легко кастомизируется и есть возможность расширения функционала с помощью дополнительных плагинов (См. следующий плагин).

Галереи изображений и слайдеры – одни из самых популярных форматов jQuery. Благодаря им вы можете добавить на сайт необходимый объем визуального контента, экономя при этом ценное место.

Галереи и слайдеры делают страницу менее загруженной, но все же позволяют добавить все изображения, необходимые для передачи послания. Особенно полезны они будут для и интернет-магазинов.

В сегодняшней статье мы собрали для вас лучшие галереи изображений и слайдеры jQuery.

Для их установки достаточно добавить выбранные плагины в раздел head HTML страницы вместе с библиотекой jQuery и настроить их согласно документации (всего пара строчек кода).

Выбирайте, какой из этих элементов идеально впишется в ваш проект.

1. Bootstrap Slider

Bootstrap Slider – бесплатный, оптимизированный под мобильные устройства слайдер изображений с прокруткой прикосновением и смахиванием. Он будет потрясающе смотреться на любом экране и в любом браузере. Вы можете загрузить в слайдеры изображения, видео, текст, миниатюры и кнопки.

2. Product Preview Slider

Product Preview Slider воплощает в себе весь потенциал jQuery, он отлично встраивается в любой интерфейс. Также вас порадует качество и чистота кода этого плагина.

3. Expandable Image Gallery

Expandable Image Gallery – потрясающий плагин, который одним кликом мышки превращается в полноэкранную галерею. Его можно использовать для раздела “О нас” или для просмотра информации о товарах.

4. Fotorama

Fotorama – плагин отзывчивой галереи jQuery, который работает как для десктоп, так и для мобильных браузеров. Он предлагает множество опций навигации: миниатюры, прокрутку, кнопки “вперед” и “назад”, автоматический показ слайд-шоу и маркеры.

5. Immersive Slider

Immersive Slider позволяет создавать уникальный опыт просмотра слайдов, похожий на слайдер Google TV. Вы можете изменить фоновое изображение, которое будет размыто для сохранения фокуса на основных фото.

6. Leastjs

Leastjs – отзывчивый jQuery плагин, который поможет вам создать потрясающую галерею. При наведении курсора на изображение, появляется текст, при нажатии окно разворачивается на весь экран.

7. Sliding Panels Template

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

8. Squeezebox Portfolio Template

Squeezebox Portfolio Template предлагает motion-эффекты для портфолио. При наведении курсора на основное изображение (или блок) появляются привязанные элементы.

9. Shuffle Images

Shuffle Images – потрясающий отзывчивый плагин, который позволит вам создать галерею с меняющимися при наведении курсора изображениями.

10. Free jQuery Lightbox Plugin

Free jQuery Lightbox Plugin поможет вам показать одно или несколько изображений на одной странице. Также их можно будет увеличить и вернуть к исходному размеру.

11. PgwSlider – Responsive slider for jQuery

PgwSlider – минималистичный слайдер изображений. jQuery код весит немного, поэтому скорость загрузки этого плагина вас приятно удивит.

12. Scattered Polaroids Gallery

Scattered Polaroids Gallery – потрясающий слайдер, выполненный в плоском дизайне. Его элементы хаотично движутся при переключении изображений, что выглядит потрясающе.

13. Bouncy Content Filter

Bouncy Content Filter – идеальное решение для и портфолио. Этот плагин позволяет пользователям быстро переходить из одной категории в другую.

14. Simple jQuery Slider

Simple jQuery Slider оправдывает свое название. Этот плагин сочетает в себе элементы JavaScript, HTML5 и CSS3. В демо по умолчанию доступна только загрузка текста, но если внести несколько изменений, можно будет добавить и визуальный контент.

15. Glide JS

Glide JS – простой, быстрый и отзывчивый jQuery слайдер. Его легко настроить, к тому же плагин не займет много места.

16. Fullscreen drag-slider with parallax

Этот потрясающий jQuery слайдер с возможностью загрузки изображений и текста подойдет для любого сайта. Он порадует пользователей легким parallax эффектом и медленным появлением текста.

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

Пример можно увидеть здесь:

Скачать

Мы рассмотрим более подробно как создать меню из Демо 2 , когда меню появляется слева вверху.

HTML часть

Сперва необходимо подключить библиотеку jQuery, которую можно скачать здесь и плагин Flipping Gallery , между тегами :

1 2 3 4 5 6 ... ...

Затем располагаем изображения. Вы можете добавлять столько изображений, сколько пожелаете:

1 2 3 4 5 6 7 8 ...

А чтобы добавить описание для изображений(как в демо 4 и 5) необходимо использовать атрибут data-caption :

1 2 3 4 5 6 7 8 ...
JS часть
1 2 3 4 5 6 7 8 9 $(".gallery" ) .flipping_gallery ({ direction: "forward" , selector: "> a" , spacing: 10 , showMaximum: 15 , enableScroll: true , flipDirection: "bottom" , autoplay: 500 } ) ;

Рассмотрим что означает каждый метод:

  • direction — метод отвечающий за то, как будут появляться изображения. Если «forward», то изображение из начала будет помещаться в конец, если «backward» — наоборот. По умолчанию значение задается «forward».
  • selector — селектор по которому выбираем изображения, его можно изменить по желанию.
  • spacing — задает отступ между изображениями в перспективе.
  • showMaximum — задает количество изображений, которые видны пользователю. Можно использовать хоть 100 изображений, но показываться будут только первые 15, что очень удобно и не нагружает браузер.
  • enableScroll — можно просматривать изображения используя колесо мыши.
  • flipDirection — определяет куда будет скользить изображение: «left» — влево, «right» — вправо, «top» — вверх и «bottom» — вниз. По умолчанию оно скользит вниз.
  • autoplay — автозапуск галереи. Задается в милисекундах, т.е. через сколько будут сменяться изображения.
Вывод

Теперь у вас есть великолепная галерея, которую можно использовать при размещении своих фотографий.

Всем привет! В этой статье мы рассмотрим, как сделать красивую и удобно сортируемую галерею на JQuery .

Красивая, удобно сортируемая галерея – это прекрасная вещь для вашего сайта, которая будет радовать вас и ваших посетителей. Сегодня мы рассмотрим очень простой в установке и настройке плагин для библиотеки JQuery – Filterizr .

Несмотря на простоту использования, плагин достаточно легкий и эффектный. Давайте рассмотрим его подробнее.

Демонстрация

Чтобы посмотреть, как работает плагин, зайдите на официальный сайт , и вот он уже перед вами!

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

Установка

Чтобы скачать библиотеку, нажмите кнопку Download или используйте NPM :

Npm install filterizr

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

1) Передать объект с параметрами в конструктор JQuery

Var filterizd = $(".filtr-container").filterizr({
// параметры
})

2) Переписать параметры, используя setOptions() метод в объекте Filterizr .

Filterizd.filterizr("setOptions", {
// параметры
})

Параметры

Параметры по умолчанию:

Options = {
animationDuration: 0.5,
callbacks: {
onFilteringStart: function() { },
onFilteringEnd: function() { }
},
delay: 0,
delayMode: "progressive",
easing: "ease-out",
filter: "all",
filterOutCss: {
opacity: 0,
transform: "scale(0.5)"
},
filterInCss: {
opacity: 0,
transform: "scale(1)"
},
layout: "sameSize",
selector: ".filtr-container",
setupControls: true
}

Более подробные инструкции и описание каждого параметра вы можете найти на