Простая jQuery галерея изображений

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

1. Unite GalleryБесплатная, адаптивная фото и видео галерея на основе библиотеки jQuery. При разработке акцент делался на простоту использования и настройки. Поставляется с довольно большим количеством качественных тем оформления, а так же, что немаловажно, есть возможность писать собственные темы оформления.2. Responsive Image Gallery with Thumbnail CarouselАдаптивная галерея изображений с функцией отключения карусели превьюшек. Подстраивается под размер вашего экрана, есть прелоадер подгрузки изображений.

4. Full Page Image Gallery with jQueryЕще одна полноэкранная галерея изображений . Ее особенностью и “изюминкой” есть перемещение увеличенного полноэкранного изображения в зависимости от положения мышки.
Бар миниатюр в нижней части экрана прокручивается автоматически когда пользователь перемещает мышь.

5. Slider Gallery With jQueryИдеально подойдет для разбивки галерей на альбомы. При выборе альбома будут показаны миниатюры со слайдером изображений .

6. GalleriaЭто хорошо спроектированная адаптивная галерея изображений , способная показывать фото и видео галереи из Flickr, Picasa, YouTube и др. Поддержка мобильных устройств и возможность работать в полноэкранном режиме. Есть возможность отображения подписей. Есть платные Вебдизайн с jQuery - это очень просто! PP Gallery - универсальная фотогалерея с миниатюрами.
Установка и настройка

Среди многообразия фотогалерей особое место занимают программы, в которых для перемещения по картинкам в окне просмотра используются миниатюры-превьюшки (смотрите, например, статью Фотогалерея prettyPhoto ).Такой способ особенно удобен для галерей с большим числом изображений, так как последовательно листать их довольно утомительно. Можно, конечно, возвращаться обратно к исходной странице и выбирать нужную картинку, но этот способ не назовешь удачным.

Универсальная фотогалерея PP Gallery, плагин замечательной бесплатной библиотеки jQuery , позволяет легко просматривать любое количество изображений и открывать их, не выходя из окна просмотра галереи. PP Gallery имеет широкие возможности навигации, а наличие ползунка для движения по миниатюрам позволяет быстро перемещаться даже по очень большой коллекции фотографий. Кроме того, миниатюры в самом окне фотогалереи во многих случаях делают не нужным размещение их на основной странице (подробнее об этом рассказано ниже).

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


Установка фотогалереи PP Gallery

Как обычно, начинаем с создания на сайте новой папки, назвав её, например, ppgallery . Затем скачиваем архив и распаковываем его в созданную папку. У нас получится в ней одна папка js со скриптами и другая с CSS-файлами.

Далее добавим в заголовок страницы с будущей фотогалереей внутрь тега ... следующие строчки, указывающие пути к нашим новым файлам, и небольшой JavaScript для инициализации и настройки параметров PP Gallery :







$(document).ready(function() {
$("#gallery").ppGallery({
screenFade: 0.8, //прозрачность фона
screenColor: "#333333", //цвет фона
thumbWidth: 60, //ширина миниатюр-превьюшек. По умолчанию 60px
maxWidth: "700", //контроль максимальной ширины картинок (устанавливать больше самой большой)
slideShowDelay: "2", //скорость смены картинок в слайд-шоу (сек)
showHiddenGalleryButton: "", //#view - скрыть миниатюры на странице с галереей (не путать с окном галереи!)
autoOpen: 0 //запуск галереи сразу при открытии страницы (1= yes, 0= no)
});
});

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

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

Для размещения изображений (больших - big.jpg и миниатюр - small.jpg) используется неупорядоченный список из обычных гиперссылок с идентификатором id="gallery" :

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

На этом установка PP Gallery закончена, и вы можете запускать фотогалерею и любоваться ею в браузере. Как частенько говорят в рекламе, вы удивитесь, как всё просто и быстро... Впрочем, это характерно для большинства плагинов jQuery , которые уже несколько лет облегчают жизнь веб-дизайнеров.

Настройка параметров фотогалереи PP Gallery

Основные настройки внешнего вида фотогалереи PP Gallery находятся в элементарном CSS-файле ppgallery.css и в js-скрипте, размещенном нами в теге ... . Русские комментарии, надеюсь, не требуют пояснений.

Так как в окне фотогалереи PP Gallery выводятся миниатюры всех изображений, то, в принципе, их дублирование на странице сайта становится необязательным. Исключение составляет только случай, если вы хотите красочно оформить фотогалерею со всякими наворотами и прибамбасами. Но зачем это делать, если кликом по любой картинке посетитель всё равно уходит в окно PP Gallery и ваши труды останутся незамеченными?

Следовательно, на странице сайта можно скрыть все изображения галереи, оставив только кнопку запуска программы PP Gallery . Для этого надо ввести значение #view в строке инициализации
showHiddenGalleryButton: "#view", //#view - скрыть миниатюры на странице с галереей
и добавить кнопку запуска фотогалереи с помощью тега перед списком изображений (перед

    ).
    Запуск фотогалереи или .

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

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

    1. jQuery галерея с эффектом перелистывания страницы

    Подобное решение можно использовать для вывода последних статей в блоге либо для презентации товаров.

    Уникальный способ отобразить ваши фотографии в виде jQuery необычной галереи.

    3. jQuery галерея изображений для товара, плагин «slideJS»

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

    Изображение увеличивается при наведении на него курсора мыши.

    5. Элегантная Lightbox галерея «ppGallery»

    6. Мини-галерея jQuery «Touch-Gallery»

    7. Новая jQuery галерея с миниатюрами

    Профессиональная jQuery галерея 2011 года.

    8. jQuery плагин «Nivo Zoom»

    Еще один качественный jQuery плагин от разработчиков Nivo слайдера. Увеличение изображение по нажатию на миниатюру.

    9. jQuery галерея «3d Wall Gallery»

    Новая jQuery галерея 2011 года. Лента изображений растянута на всю ширину экрана. Навигация между фотографиями осуществляется тремя способами: с помощью колеса мыши, с помощью прокрутки сверху галереи и с помощью блока с миниатюрами снизу. Галерея выглядит очень эффектно.

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

    11. Необычное отображение изображений в jQuery галерее

    С помощью ползунка сверху можно изменить расстояние между изображениями в стопке. При нажатии на изображение оно поворачивается.

    12. Плагин jQuery галереи «MB.Gallery»

    13. jQuery галерея, растягивающаяся на весь экран

    Плагин 2011 года. Новая галерея с описанием изображений, растягивающаяся на всю область окна браузера не зависимо от его размеров. Интересно реализованы миниатюры изображений. Переход между фотографиями осуществляется с помощью стрелок около миниатюры и с помощью колеса мыши.

    14. Легкая jQuery галерея

    Плагин автоматически сканирует папку и создает уменьшенные копии изображений.

    16. Стильная галерея с использованием библиотек jQuery и Raphael

    Интересный эффект при наведении курсора мыши на миниатюру.

    17. Новая версия jQuery плагина «Supersized» версия 3.1

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

    18. jQuery плагин «Galleria 1.2.2»

    Новая jQuery галерея для ваших проектов.

    Галерея выплывает на странице по нажатию на кнопку. Миниатюры отображаются вокруг увеличенного изображения. Можно управлять автоматической сменой изображений. Используемые технологии: jQuery, CSS, PHP.

    20. Плагин «Timer Gallery»

    jQuery галерея. Реализована автоматическая смена слайдов и прокрутка миниатюр, если их слишком много.

    Плагин галереи изображений на jQuery.

    22. javascript галерея для просмотра на мобильных устройствах «PhotoSwipe»

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

    23. javascript галерея с 3D эффектом

    24. Галерея «jQuery morphing gallery»

    Новый jQuery слайдер. Несколько классных анимированных эффектов при смене слайдов.

    25. jQuery плагин «Galleria 1.2.3»

    26. jQuery галерея изображений «Image Wall»

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

    27. CSS3 галерея

    Интересный эффект при наведении.

    28. Галерея с миниатюрами «TN3 Gallery»

    jQyery галерея с миниатюрами. Реализована возможность просмотра в компактном окне и в окне на весь экран, а также возможность отключать/включать автоматическую смену слайдов.

    29. Сетка изображений «Grid-Gallery»

    Сетка изображений растягивается в зависимости от ширины окна браузера. Интересный эффект при наведении: подсвечивается активный ряд и колонка.

    30. jQuery галерея «Swap Gallery»

    Легкая галерейка jQuery в несколько строк кода.

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

    31. Галерея изображений jQuery

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

    Изображение и его миниатюры выполнены в виде кругов.

    33. jQuery плагин портфолио фотографа «Portfolio Image Navigation»

    Оригинальное javascript решение для оформления портфолио фотографа. Навигация между изображениями осуществляется с помощью стрелок Вверх/Влево/Вправо и при помощи мини-квадратов (имитация перемещения в 2D пространстве). Можно сгруппировать фотографии из разных фото сессий в разные вертикальные ряды и перемещаться по ним с помощью элементов навигации. Смотрите демонстрацию.

    34. Плагин «jmFullZoom»

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

    35. Фото-карта

    Галерея интегрированная с Google картой. Можно развернуть на весь экран, нажав на иконку в правом нижнем углу. Отлично подойдет для туристических сайтов.

    36. Галерея изображений с миниатюрами

    jQuery галерея с миниатюрами.

    37. jQuery галерея «Galleriffic»

    Слайд-шоу с миниатюрами.

    38. jQuery CSS 3 плагин «Wave Display Effect»

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

    Много вариантов отображения и настроек.

    42. Plogger

    43. Простенькая симпатичная галерея, сделанная на CSS, без использования скриптов

    Красиво выглядит и отлично работает во всех современных браузерах

    Можно управлять автоматическим показом слайдов (старт/стоп), переключение слайдов с помощью стрелок клавиатуры, автоматическое постраничное разбиение названий слайдов, если их много, поддерживается несколько галерей на одной странице, подписи к слайдам, поддержка API и возможность создавать свои эффекты перехода слайдов

    46. Галерея в виде стопки фотографий

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

    47. jqFancyTransitions

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

    У нас на странице будет область с миниатюрами изображений галереи и область, где мы будем показывать изображение в увеличенном масштабе. Щелкая по любой из миниатюр, посетитель будет видеть соответствующее большое изображение в этой области. Изображение будет проявляться в течении некоторого времени, создавая эффект анимации, а предыдущее изображение будет в это время растворяться.

    Справиться с такой задачей достаточно несложно, если применить возможности библиотеки jQuery. Этим мы с Вами и займемся.

    Создаем галерею изображений с jQuery

    Но перед тем как писать код Java Script нам нужно пройти некоторые подготовительные этапы.

    Во-первых, нужно подготовить изображения. У нас будет два вида изображений: миниатюры и изображения большого размера. Я создала папку «img», в которой создала еще 2 папки: «big» и «small». В папке «big» я сохранила большие изображения (у меня они все примерно одного размера по ширине и высоте, где-то 500px на 500px). В папке «small» лежат миниатюры тех же самых изображений (их размеры также должны быть примерно одинаковыми. Когда я говорю примерно, это значит, что разница в 2-3 пикселя не играет особого значения).

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

    Во-вторых, нам нужно создать html-файл, создать в нем разметку страницы с нашей галереей и подключить к этому файлу css-файл (таблицу стилей).

    Давайте этим сейчас и займемся.

    1. Откройте редактор для создания нашего кода и создайте новый html-файл. Назовем его «gallery.html» и сохраним в тот же каталог, где находится папка с картинками «img».

    Теперь напишем содержимое этого файла.

    Между тегами «body» будет находится div с идентификатором «wrapper». Он будет содержать 2 основных элемента: тег header, в котором будет находится заголовок и div с идентификатором «content», в котором будет находится вся наша галерея.

    Div «content» будет содержать div с идентификатором «main», в котором будет находиться заголовок для галереи; div с идентификатором «gallery», где расположены миниатюры наших изображений и еще один div с идентификатором «photo». Div с идентификатором «photo» пока что будет пустым, но при работе галереи в него будут выводиться большие изображения соответствующих миниатюр.

    Вот в общем-то и все. Код всего вышеописанного будет выглядеть следующим образом:

    Gallery jQuery

    Галерея на jQuery

    Моя Галерея

    Вот так будет выглядеть страница если мы откроем ее в браузере:

    2. Теперь странице нужно придать стилей. Для этого создадим файл таблицы стилей «style.css» и сохраним его в том же каталоге, что и html-документ.

    Давайте подключим этот файл к нашей странице. Зайдите в наш html-файл, с которым мы только что работали и между тегов head подключите файл только что созданной таблицы стилей, прописав следующую строчку кода:

    Таблица стилей подключена и теперь пришло время прописать стили для всех наших элементов. Зайдите в файл «style.css» и пропишите следующий код:

    body{background:rgba(102,102,153,1);} #wrapper{margin:0 auto; width:80%;} header{text-align:center;} .logo{font-family:Helvetica, sans-serif; font-size:36px; color:#DD8D15; text-shadow:2px 2px 2px #333333;} h1{font-family:Tahoma, Geneva, sans-serif; font-style:italic; color:#FFF; text-shadow:2px 2px 2px #333; text-align:center;} #gallery{float:left; width:90px; margin-left:20px; border-right:1px solid #fff;} #gallery img{margin:0 0 10px 0; display:inline-block; border:1px solid #000;} #photo{position:relative; margin-left:150px; border-top:1px solid #fff;} #photo img{position:absolute; padding-left:150px;}

    Здесь мы задаем цвет для нашей страницы, задаем ширину для div с идентификатором «wrapper» и устанавливаем ему положение в центре.

    Также мы создаем стили для шрифтов, указывая различные параметры, такие как: цвет, размер, тень, стиль шрифта и его выравнивание.

    Div с идентификатором «gallery» мы присваиваем обтекание по левому краю, ширину, отступы и правую рамку.

    Картинкам-миниатюрам мы также задаем отступ рамку и свойство «display:inline-block», которое генерирует блочный элемент, обтекаемый другими элементами веб-страницы.

    Div с идентификатором «photo» мы задаем отступ слева, верхнюю рамку, а также позиционируем относительно, а большие изображения, которые будут в него попадать позиционируем абсолютно.

    Теперь если мы обновим страницу в браузере, то увидим вот что:

    3. И последнее подготовительное действие – это подключение на нашу страницу библиотеки jQuery и создание js-файла для собственного скрипта.

    Вы можете скачать файл библиотеки jQuery с сайта http://jquery.com/ или загрузить его из исходников к этому уроки из папку под названием «js».

    Чтобы скачать файл для подключения библиотеки с сайта jquery.com нужно:

    1. Нажать на кнопку «Download» в меню сайта.
    2. На отрывшейся странице найти ссылку «Download the compressed, production jQuery 1.10.2» (последние цифры – это версия библиотеки, они могут отличаться).
    3. Нажать на ссылку правой кнопкой мыши и выбрать «Сохранить объект как…», после чего нужно выбрать то место, куда Вы хотите сохранить файл.

    Кстати, Вам тоже нужно создать папку с именем «js» в основном каталоге и поместить туда файл библиотеки jQuery, который Вы скачаете либо с их сайта, либо из исходников.

    После этого создайте новый JavaScript-файл, назовите его «my_script.js» и сохраните также в папку «js». В этом файле будет весь наш код для работы галереи.

    Но перед тем как его писать нужно подключить эти два файла к нашей html-странице.

    Для этого снова зайдите в файл «gallery.html» и перед закрывающим тегом head пропишите следующие строки:

    Мы подключили наши файлы и теперь можно заняться самым интересным – написание кода для работы галереи.

    4. Откройте файл «my_script.js» и напишите следующие строки:

    Эта функция ждет пока загрузятся вся наша html-страница, прежде чем начать выполнение кода JavaScript. Между фигурными скобками будет располагаться весь наш последующий код. Кстати, комментарий «//здесь будет расположен весь наш код» писать не обязательно, он здесь для того, чтобы Вам просто было понятнее.

    Сначала нам нужно выбрать все ссылки, находящиеся в div с идентификатором «gallery» и присвоить им событие щелчка мыши. Событию щелчка мы передадим анонимную функцию, которая и будет выполнять какие-либо действия. В данном случае функция будет с переменной «evt», которая будет сохранять объект события (то есть ссылку, по которой произведен щелчок).

    $(document).ready(function() { $("#gallery a").click(function(evt){ }); });

    Обычно браузер реагирует на нажатие по ссылке следующим образом: он отправляет нас на страницу, прописанную в параметре «href» ссылки. Но в данном случае нам это не нужно. Мы хотим, чтобы большие изображения появлялись на той же странице, на которой мы находимся сейчас в специально отведенном для них месте. Поэтому в первую очередь нужно отменить стандартное поведение браузера при щелчке на наши ссылки. Как раз для этого нам понадобиться переменная «evt», в которой сохранен объект события. Нам нужно применить к ней функцию объекта события «preventDefault».

    $(document).ready(function() { $("#gallery a").click(function(evt){ evt.preventDefault(); }); });

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

    Во-первых, мы извлечем атрибут «href» большой картинки, по миниатюре которой произошел щелчок и поместим его в переменную «imgPath».

    Во-вторых, мы создадим переменную «oldImg», в которой будет храниться та большая картинка, которая находится в области для изображений в данный момент.

    В-третьих, мы создадим переменную «newImg», в которой сформируем тег img для новой картинки, которая должна появиться в области для изображений. Здесь нам пригодиться переменная «imgPath», которая содержит атрибут «href» для этой картинки.

    $(document).ready(function() { $("#gallery a").click(function(evt){ evt.preventDefault(); var imgPath = $(this).attr("href"); var oldImg = $("#photo img"); var newImg = $(""); }); });

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

    Итак, нам нужно, чтобы новая картинка, по миниатюре которой посетитель только что кликнул сначала исчезла. Вы спросите – «Зачем?». Дело в том, что для того, чтобы сделать эффект проявления нам сначала нужно полностью скрыть изображение. Этого мы можем добиться при помощи функции hide() .

    Следующим действием будет добавление новой картинки в тег с идентификатором «photo» и здесь нам подойдет функция prepend() , которая добавит html-код картинки в тег, а именно в самое его начало.

    И теперь наша картинка должна красиво проявиться, например, за одну секунду. Здесь нам поможет функция fadeIn() .

    $(document).ready(function() { $("#gallery a").click(function(evt){ evt.preventDefault(); var imgPath = $(this).attr("href"); var oldImg = $("#photo img"); var newImg = $(""); newImg.hide(); $("#photo").prepend(newImg); newImg.fadeIn(1000); }); });

    Вы даже можете проверить Вашу страницу в браузере (предварительно перезагрузив). Если Вы щелкните на какой-либо картинке, то она появится. Но если после этого щелкнете по другой, то ничего больше не произойдет.

    Все верно. Теперь, перед появлением новой картинки, мы должны удалять старую.

    А делать мы это будем так: сначала мы скроем старую картинку в течении 1 секунды (так у нас получится плавный переход между изображениями). В этом нам поможет функция fadeOut() .

    Но этого не достаточно, нужно не просто скрыть изображение, но и удалить его из тега «photo», а поэтому первым параметром для функции fadeOut() мы передадим время эффекта (1000 миллисекунд), а вторым параметром функцию, которая и будет удалять старую картинку при помощи функции remove() .

    $(document).ready(function() { $("#gallery a").click(function(evt){ evt.preventDefault(); var imgPath = $(this).attr("href"); var oldImg = $("#photo img"); var newImg = $(""); newImg.hide(); $("#photo").prepend(newImg); newImg.fadeIn(1000); oldImg.fadeOut(1000, function(){ this.remove(); }); }); });

    Теперь наша галерея уже работает. Вы можете перезагрузить страницу браузера и проверить ее работу.

    Единственное, что осталось сделать – это дописать еще одну строчку кода, чтобы при загрузке страницы в области для больших изображений уже отображалась первая фотография.

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

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

    $(document).ready(function() { $("#gallery a").click(function(evt){ evt.preventDefault(); var imgPath = $(this).attr("href"); var oldImg = $("#photo img"); var newImg = $(""); newImg.hide(); $("#photo").prepend(newImg); newImg.fadeIn(1000); oldImg.fadeOut(1000, function(){ this.remove(); }); }); $("#gallery a:first").click(); });

    Все! Галерея готова! Ее работу Вы можете посмотреть щелкнув по иконке с надписью «Демо» в самом начале поста.

    Такую галерею Вы можете разместить на своем сайте или блоге, чтобы показывать Ваши фотографии или Ваши товары… или еще все, что угодно; все, что Вы сами придумаете.

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

    Если эта тема Вам интересна, но Вы в ней новичок, то могу посоветовать Вам очень хороший курс от Евгения Попова «Javascript + jQuery для начинающих в видеоформате» .

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

    А на этой ноте я буду с Вами прощаться.

    Если урок Вам понравился или возникли какие-либо вопросы, пишите комментарии, и я Вам обязательно отвечу и вообще буду рада любым Вашим комментариям!

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

    Также поздравляю Вас с уже приближающимися Новогодними Праздниками и желаю провести их весело!

    Здравствуйте, уважаемые читатели a! В этом уроке я покажу Вам, как создать минималистичную, но в тоже время удобную и функциональную фото галерею на jQuery , или галерею изображений, кому как удобно. В галерее есть возможность создавать категории, с последующей фильтрацией. Так же есть возможность запуска слайд-шоу. Галерея работает во всех браузерах, так что проблем с адаптацией не будет.

    Для создания этой галереи будут использованы две бесплатные библиотеки : Quicksand и PrettyPhoto . Они значительно упрощают создание галереи. Как всегда результат работы Вы можете увидеть на демонстрационной странице, а также скачать архив с работающей галерей и все исходные файлы. Единственным минусом, если можно так сказать, является создание в ручную миниатюр для больших изображений. А во всем остальном эта галерея достойна внимания. Так же как и !

    HTML разметка

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

    1
    2
    3
    4
    5
    6
    7
    8


    Категории:
    Все
    Категория 1
    Категория 2
    Категория 3
    Категория 4

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11







  • Название картинки

    опубликовано: 2012


  • Как говорилось выше, элементы списка это изображения в галерее. Каждый элемент списка включает составные. Это непосредственно само изображение, точнее его миниатюра, а также описание. Миниатюра представляет собой ссылку на основное изображение. Атрибут rel необходим для вызова javascript и открытия основного изображения.

    Не забывайте также о 2 важных вещах, у элемента списка li атрибут data-id должен быть уникальным. Атрибут data-type содержит класс категории, список которых я описывал выше. О разметке вроде бы все.

    Стили CSS

    Особо заострять внимание на стилях не буду, так как используем мы уже готовую библиотеку PrettyPhoto , которая отвечает за увеличение изображения, и css кода достаточно много. Однако стоит заметить предусмотрено 5 вариантов оформления увеличенного изображения, хотя в идеале всего 3 , так как в двух вариантах лишь убирается закругление.

    Поэтому, покажу лишь CSS стили для миниатюр ну и списка категорий.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28

    Portfolio-categ { margin-bottom : 30px ; }
    .portfolio-categ li {
    display : inline ;
    margin-right : 10px ;
    }
    .image-block {
    display : block ;
    position : relative ;
    }
    .image-block img {
    border : 1px solid #d5d5d5 ;
    border-radius : 4px 4px 4px 4px ;
    background : #FFFFFF ;
    padding : 10px ;
    }
    .image-block img: hover {
    border : 1px solid #A9CF54 ;
    box-shadow : 0 0 5px #A9CF54 ;
    }
    .portfolio-area li {
    float : left ;
    margin : 0 12px 20px 0 ;
    overflow : hidden ;
    width : 245px ;
    padding : 5px ;
    }
    .home-portfolio-text { margin-top : 10px ; }
    li.active a { text-decoration : underline ; }

    В принципе, со стилями должно быть все понятно. Чтобы категории выстроились в ряд свойству display придается значение inline . Для того чтобы придать эффект обводки изображения, задается фоновый цвет (белый) и отступ в 10 пикселей. Размеры элементов списка задаются в .portfolio-area li .

    jQuery

    Ну и напоследок самое важное, то ради чего весь урок. Это jQuery код. Начнем с фильтрации картинок, по категориям.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23

    // Выбираем все дочерние элементы portfolio-area и записываем в переменную
    var $data = $(".portfolio-area" ) .clone () ;

    $(".portfolio-categ li" ) .click (function (e) {
    $(".filter li" ) .removeClass ("active" ) ;

    var filterClass= $(this ) .attr ("class" ) .split (" " ) .slice (- 1 ) [ 0 ] ;

    if (filterClass == "all" ) {
    var $filteredData = $data.find (".portfolio-item2" ) ;
    } else {
    var $filteredData = $data.find (".portfolio-item2" ) ;
    }
    $(".portfolio-area" ) .quicksand ($filteredData, {
    duration: 600 ,
    adjustHeight: "auto"
    } , function () {

    LightboxPhoto() ;
    } ) ;
    $(this ) .addClass ("active" ) ;
    return false ;
    } ) ;

    C помощью метода clone() и селектора, выбираем все дочерние элементы у .portfolio-area и записываем их в переменную $data . Далее отслеживаем клик по одной из категорий, элемент li у списка с классом .portfolio-categ . Делаем все категории не активными, посредством удаления removeClass(«active»), если этого не делать то со временем все категории будут активными и фильтрация остановиться.

    Так как мы кликаем по элементу списка, то в селекторе this содержится элемент списка то есть li , у него мы берем значение атрибута class и с помощью метода split разбиваем название класса на несколько частей, границей является пробел (т.е. если класс был «all active» то после разбиения мы получаем массив из «all» и «active»). А уже далее методом slice выбираем первый элемент массива (в нашем случае «all»), и записываем получившийся результат в переменную filterClass . Если пробела не было то название класса не измениться.

    Далее проверяем если в переменной filterClass строка all , то методом .find выбираем все элементы с классом portfolio-item2 из массива $data , который мы рассматривали выше. Выбранные элементы (а это все элементы списка, то есть все картинки) помещаем в переменную filteredData .

    В противном случае, если filterClass не равна all , то в переменную filterData поместим не все элементы списка, а лишь те у которых атрибут data-type совпадает с классом категории. Короче говоря элементы только одной категории.

    И в конечном итоге полученную переменную передаем в библиотеку jquery quicksand , которая и производит фильтрацию картинок. Это все что касается фильтрации.

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

    1
    2
    3
    4
    5
    6
    7

    jQuery("a" ) .prettyPhoto ({
    animationSpeed: "fast" ,
    slideshow: 5000 ,
    theme: "facebook" ,
    show_title: false ,
    overlay_gallery: false
    } ) ;

    Отслеживается клик по ссылке, у которой атрибут rel начинается с prettyPhoto . После чего в дело вступает библиотека prettyPhoto , и изображение чудесным образом увеличивается. Кстати, мы также передаем несколько параметров. Такие как скорость анимации — быстрая, задержка у слайд шоу — 5 секунд, тема оформления Facebook (всего 5 тем они находятся в папке images/prettyPhoto), а также запрещаем показ названия картинки и увеличение картинки при наведении мыши. Полную документацию по prettyPhoto можно найти

    Чтобы оставаться в курсе свежих статей и уроков подписывайтесь на