Windows. Вирусы. Ноутбуки. Интернет. Office. Утилиты. Драйверы

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

Основные плюсы (+)

  • Простота установки, настройки и использования. Кроме jQuery, вам понадобится подключить всего 2 файла , а для вывода галереи там нужно указать только ссылки на картинки.
  • Незначительно влияет на скорость загрузки сайта.
  • Адаптивность . Ваша галерея выглядит хорошо и на телефоне, и на ноутбуке, и даже на экране телевизора.
  • Обилие настроек и функций, подключаемых отдельно, через атрибуты HTML тегов.
  • Поддержка сенсорных устройств.
  • Поддержка видео .
  • Возможность ленивой загрузки картинок.
  • И много-много всего другого, что придётся по душе искушённому пользователю.
  • Минусы (-)

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

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

  • Проверяем наличие jQuery. Зайдите в исходный код сайта (сочетание клавиш Ctrl + U) → пытаемся найти примерно такую строчку: https://ajax.googleapis.com/ajax/libs/jquery/X.X.X/jquery.min.js

    Для облегчения поиска используйте Ctrl + F . Если заветной строки нет, то вам придётся подключить jQuery. На WordPress это можно сделать вставив код, расположенный ниже, в файл функций темы (functions.php). На самом деле этот скрипт используется при конфликтах разных версий jQuery и действует он по такой схеме: удаляет зарегистрированный ранее jQuery, регистрирует новый, выводит скрипт. Актуальные версии библиотеки jQuery можно найти тут .

    Можно просто вставить такую строку между и :

  • Подключаем fotorama.css и fotorama.js. Вставьте следующий код между тегами и , на WordPress это делается в файле заголовка темы (header.php).
  • На этом подключение галереи первым способом окончено. Как использовать написано в разделе "Непосредственно создание галереи".
  • Второй вариант подключения [шорткод + Autoptimize]

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

  • Проверяем наличие jQuery. Так же как и в первом варианте, смотрите выше.
  • Скачиваем файлы фоторамы → распаковываем → загружаем в отдельную папку в корне сайта.
  • Для создания шорткода в файл функций темы (functions.php) вставляем код, расположенный ниже, изменяем ссылки к файлам на свои..js"> "; } add_shortcode("foto","sd");
  • Теперь при написании статьи в конце вводите шорткод
  • Непосредственно создание галереи

    Галерея выводится HTML кодом с помощью контейнера c class="fotorama" , в контейнере размещаются код вывода изображения либо ссылка на изображение . При написании статьи на движке WordPress переключите редактор в текстовый режим и введите контейнер c class="fotorama" .

    Выглядит это так:

    Или так (нумерация ссылок необязательна):

    1 3 4

    Примеры настроек FotoramaРазмеры контейнера

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

    Существуют и другие настройки:

    Data-width="98%" //относительная ширина data-ratio="800/600" //соотношение сторон data-minwidth="420" // мин. ширину data-maxwidth="900" // макс. ширину data-minheight="320" // мин. высота data-maxheight="100% // относительная макс. высота data-height="100% // относительная высота

    Миниатюры

    За миниатюры отвечает data-nav="thumbs"

    Но такой способ не очень эффективен, так как скрипту приходится загружать сразу все фотографии для генерации миниатюр, поэтому будет рациональнее заранее подготовить маленькие копии картинок. WordPress автоматически делает миниатюры, мы их и будем использовать. Чтобы получить ссылку на миниатюру добавьте -70x70 к названию файла (https://сайт/wp-content/uploads/2017/11/27ltl9eRXk.jpg → https://сайт/wp-content/uploads/2017/11/27ltl9eRXk-70x70.jpg).

    По умолчанию миниатюра - 64 × 64. Откорректировать этот параметр можно с помощью data-thumbwidth (ширина) и data-thumbheight (высота). Если вам нужно чтобы миниатюра имела свой собственный размер, то задайте параметры width и height для файла миниатюры:

    HTML-код + Fotorama

    Фоторама отлично обрабатывает HTML и CSS, что значительно расширяет функционал скрипта. Работайте со ссылками, блоками, таблицами, абзацами, пишите CSS и многое другое. Ниже представлены некоторые примеры работы галереи. Если визуальная часть не отображается, то нажмите кнопку "Result".

    Показать / Скрыть примеры

    See the Pen ooppwb by Ivanov Klim (@DreamerKlim) on CodePen.

    See the Pen aVEEVb by Ivanov Klim (@DreamerKlim) on CodePen.

    Полноэкранный режим data-allowfullscreen="true" //в окне браузера data-allowfullscreen="native" //на весь монитор

    Существует возможность добавить отдельное большое изображение для полноэкранного режима через data-full:

    Другое data-autoplay ="true" //автозапуск data-autoplay="3000" //интервал между слайдами в мс data-caption ="One" //комментарии к картинкам data-keyboard ="true" //навигация стрелками data-shuffle ="true" //изображения в разнобой data-navposition ="top" //миниатюры вверху data-loop ="true" //циклическая прокрутка Попробуем все соединить и добавить видео "какой-то коммент 1" > "какой-то коммент 2" >
    To find work you love

    Since usually the best galleries are created in jQuery, we’ve mainly focussed on jQuery type sliders, but there are a few simple CSS galleries as well.

    This collection has been organized into five main categories so you can easy switch to your preferred section. Before we start, we wanted to tell you that it’s up to you to go for a free or premium solution.

    We did find quite a few free quality image solutions, that you will enjoy. Of course, with premium resources – there were some galleries that simply blew us away.

    Just go through the collection and find the best image solution for your needs. If it’s a personal project, surely you will not want to spend any money. But on other hand, if it’s a freelance job, maybe it’s worth spending a little money to really leave an impact on your client and save lots of time at the same time!

    I guess what I am suggesting is to always look at how much time it takes for you to modify, install, or setup a free solution. If you aren’t as skilled or it’s time consuming – definitely look into pre-made code and inexpensive but high-quality tools like these.

    jQuery Image Slideshows

    Below you will find all the best jQuery slideshows. Usually slideshows are used on top of the website to present the most important parts in the most fashionable way.

    1. AviaSlider 5. Sequence JS (Free)

    Sequence is a JavaScript slider based on CSS framework.

    8. Slideshow 2 (Free)

    Slideshow 2 image gallery

    Slideshow 2 is a JavaScript class for Mootools 1.2 to stream and animate the presentation of images on your website. Please visit their website for a full feature list.

    9. JavaScript TinySlideshow (Free)

    Very simple image slider solution.

    This dynamic JavaScript slideshow is a lightweight (5kb) and free image gallery / slideshow script.

    You can easily set it to auto-display the images, set the scroll speed, thumbnail opacity or to disable thumbnail slider. I wanted to include it in this collection because it is so lightweight. Click here to download this slideshow and see a live preview.

    jQuery Image Galleries

    In this section you will find Image Galleries. They are best suitable for portfolios, but can also be used in blogs. So let’s dig in.

    10. Galleria

    12. Visual Lightbox

    16. Unite Gallery

    17. Auto Generating Gallery

    18. HighSlide JS

    19. Flat-styled Polaroid gallery

    jQuery Image Sliders

    This section is dedicated to all the best and most beautiful sliders, booth premium and free. They do a similar job as the Slideshows, but can emphasize content holders.

    20. Touch Enabled RoyalSlider

    21. LayerSlider

    LayerSlider Responsive jQuery Slider Plugin.

    22. UnoSlider

    23. Master Slider

    Master Slider – jQuery Touch Swipe Slider

    24. Wow Slider

    26. Accordion Slider

    Accordion Slider – the best jQuery accordion slider on the market.

    27. Fotorama image slider

    It is a simple way to show your pictures or images, but powerful enough to blow you away. It’s free to use. Check it out .

    28. All in One Slider

    29. Blueberry Image Slider

    Blueberry jQuery image slider

    Blueberry image slider is a jQuery plugin, that was developed specifically for responsive web design. Blueberry image slider is an open-source project, based on a 1140px grid system from cssgrid.net. It’s simple and at the same time an excellent free option.

    I’m sure you will like it as much as I do. Check the live preview and download option .

    30. RhinoSlider

    Rhinoslider slider- The most flexible slider

    34. MightySlider

    35. Fullscreen Slit slider

    37. Cube Portfolio – Responsive jQuery Grid Plugin

    38. Slideme

    Slideme jQuery slideshow

    This jQuery plugin is great for the top of the website, to present your work or say more about you.

    Slideme has got full documentation and a tutorial how to set up your slider, for every type of device individually. Design is fully responsive with CSS3 animations. It is easy to setup and provides a public API.

    Slideme is free to use and definitely worth a look. Check out the demo here.

    39. PgwSlider

    Pgw slider is a jQuery slider,\ that is designed for showcasing your images. This slider is fully responsive. It is lightweight and all-browser compatible. Pgw slider is also SEO friendly.

    This slider is very suitable for news or blogging websites as it can show your most recent post or articles.

    40. All Around Content Slider

    41. Lens Slider

    Lens Slider jQuery and WordPress plugin

    Lens Slider is an open-source project and so, fully customisable. Slider uses very simple HTML markup of an unordered list. Images are shown as you can see in the screenshot. No other option is available. Lens Slider is also available as a WordPress plugin and free to use.

    The most suitable usage would be for products, services, or ateam presentation.

    Check it out here.

    42. Gridder

    Gridder jQuery and Ajax plugin

    Gridder is an awesome slider for showcasing your work. Gridder kind of mimics Google image search. To view the larger picture you click on a thumbnail and it expands. This is a great way to show a large number of images at the same time.

    Gridder is available as a jQuery or Ajax thumbnail previewer. It is an awesome free solution for your next portfolio project.

    For jQuery live preview check here. If you want Ajax click here.

    43. Barack Slideshow 0.3

    Barack JS- JavaScript slideshow

    Barack Slideshow is an elegant, lightweight slideshow written in JavaScript. This slideshow can operate with vertical, horizontal, and irregular lists. The images are preloaded with MooTool Assets. To keep your code clean, you should check the CSS code. This means changing some parts if needed.

    Barack Slideshow can be used as a portfolio showcase, product list, or even for listing your clients.

    Here you can find a demo and test different options.

    44. jQZoom Evolution

    JQ Zoom Evolution

    JQZoom is a JavaScript image magnifier, built on top of the popular jQuery JavaScript framework. jQZoom is a great and really easy to use script to magnify parts of your image.

    This image magnifier is the most suitable for online stores and restaurants menus.

    Find the documentation and demo here.

    45. Multimedia Portfolio 2

    Multimedia Portfolio 2-jQuery slider

    Multimedia Portfolio 2 is a jQuery plugin that can automatically detect the extension of each media file and apply the appropriate player. It supports images and videos. Multimedia Portfolio uses simple HTML markup and it’s easy to use.

    This slider is best suitable for showcasing products, services, and even news.

    46. jQuery Virtual Tour

    jQuery virtual tour

    jQuery Virtual tour is an extension of the simple panorama viewer. This jQuery virtual tour allows you to transform some panoramic views into a virtual tour! It’s a great plugin that is worth looking at.

    47.jQuery Vertical News Slider

    Vertical News slider – jQuery plugin

    jQuery Vertical News slider is very useful for websites that want to show some news or marketing campaigns on their sites. It’s responsive and uses CSS3 animations. Vertical News slider also allows you to fully customise the style of the slider.

    48. Multi Item Slider

    CSS Based Galleries

    We have come to our last section, where you will find the best pure CSS Based Galleries. They may not be as popular but are sure worth a try. See it for yourselves.

    49. HoverBox Image Gallery

    HoverBox Image Gallery

    HoverBox Image Gallery is basically a super light-weight (8kb) roll-over photo gallery that uses nothing but CSS. For faster loading it only uses one image for thumbnail and roll-over preview. All major browsers are supported. HoverBox Image Gallery is free to use for your own projects.

    It is best used as a photography showcasing for photographers, any type of portfolio and restaurant menus.

    50. CSS Image slider with 3-D transitions

    51. CSS3 Animated Image Gallery

    53. Pure CSS3 Image Gallery

    Conclusion

    I have to say I really enjoyed researching these plugins. We found amazing sliders that will, hopefully, help you to work on your next project more efficiently. There’s something for every situation here.

    There are so many amazing sliders and slideshows that it’s hard to decide what to pinpoint. But in my opinion you should definitely check out Gridder slider, because it’s really amazing what it can do, especially for free, so it’s a win-win situation.

    And you definitely should not forget Slidea . Yes it’s a premium slider, but it carries so much value it’s well worth the investment!

    If you enjoyed our article, comment, share it with your friends, and tell us if we missed your favorite slider.

    Which is your favorite gallery plugin? We would love to hear your experiences!

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

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

    ИСХОДНИКИ

    HTML разметка

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


    • Категории:

    • Все

    • Категория 1

    • Категория 2

    • Категория 3

    • Категория 4







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


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

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

    Стили CSS

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

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

    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 код. Начнем с фильтрации картинок, по категориям.

    // Выбираем все дочерние элементы 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);

    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 , которая и производит фильтрацию картинок. Это все что касается фильтрации.

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

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

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

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

    Мы будем использовать плагин 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 };

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

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

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

    "Карусель" для закольцованного воспроизведения картинок со слайд-эффектами и анимацией от Woothemes, сопровождающей проявку/растушёвку изображений, FlexSlider 2 отображает как фото, так и видео, причём, во всех основных браузерах.


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


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


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


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


    Что вы скажете насчёт компактного адаптивного слайд-проектора, запускаемого через дополнительный модуль, который работает во всех основных браузерах, включая версии от IE6 до IE9? Воспроизводите ваши картинки в виде слайдов с помощью этого модуля, очень чувствительного к воздействию.


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


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


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

    10.
    Умельцы из команды Webcodebuilder "скрестили" FlexSlider от Woothemes с Kwicks Джереми Мартина (Jeremy Martin) и получили "гибридный" адаптивный jQuery-модуль, наречённый ими FlexSlider feat. Kwiks. Модуль задействует "гармошку" Kwicks для картинок более высокого разрешения и FlexSlider - для более низкого.

    Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
    ПОДЕЛИТЬСЯ: