Создайте адаптивную галерею лайтбоксов с изображениями и видео.
Новый компонент Lightbox — комплексная функция для быстрого создания галерей изображений и видео. Посетители могут прокручивать изображения, используя сенсорную и проводную навигацию, а на не сенсорных устройствах они могут применять обычное перетаскивание мышью. Кроме того, клавиатура так же может применяться. Благодаря аппаратно ускоренным переходам CSS3, вы можете выбрать один из трех основных эффектов для создания плавной анимации при переходе по галерее Lightbox: Slide, Fade и Scale.
Компонент лайтбокса полностью совместимм с событиями сенсорных экранов и пролистываемой навигацией, а также перетаскиванием мышью для рабочих столов. При пролистывании между слайдами анимация буквально застревает на кончике пальца или курсора мыши. Быстро нажимая на предыдущую и следующую навигацию, анимация будет ускоряться, чтобы не отставать от вашего темпа. Все анимации имеют аппаратное ускорение для более плавной работы.
Как использовать Компонент Lightbox в UIkit 3
Для начала работы с компонентом добавьте атрибут uk-lightbox
к контейнеру, чтобы превратить все якоря внутри этого контейнера в ссылки лайтбокса.
<div uk-lightbox>
<a href="image.jpg"></a>
</div>
<div uk-lightbox> <a class="uk-button uk-button-default" href="images/photo.jpg">Открыть лайтбокс</a> </div>
Атрибут Alt
Чтобы добавить атрибут alt
к изображению в лайтбоксе, установите атрибут data-alt
.
<div uk-lightbox>
<a href="image.jpg" data-alt="Image"></a>
</div>
<div uk-lightbox> <a class="uk-button uk-button-default" href="images/photo.jpg" data-alt="Image">Открыть лайтбокс</a> </div>
Описания
Чтобы отобразить заголовок внизу лайтбокса, установите атрибут data-caption
с названием заголовка .
<div uk-lightbox>
<a href="image.jpg" data-caption="Caption"></a>
</div>
<div uk-lightbox> <a class="uk-button uk-button-default" href="images/photo.jpg" data-caption="Описание">Открыть лайтбокс</a> </div>
Анимации
По умолчанию галерея Lightbox использует анимацию слайдов.
Вы можете задать опцию animation
для использования анимации. Возможные значения slide
, fade
и scale
.
<div uk-lightbox="animation: fade">
<a href="image.jpg"></a>
</div>
- SlideFadeScale
<div class="uk-h3">Slide</div> <div class="uk-child-width-1-3@m" uk-grid uk-lightbox="animation: slide"> <div> <a class="uk-inline" href="images/photo.jpg" data-caption="Описание 1"> <img src="images/photo.jpg" alt=""> </a> </div> <div> <a class="uk-inline" href="images/dark.jpg" data-caption="Описание 2"> <img src="images/dark.jpg" alt=""> </a> </div> <div> <a class="uk-inline" href="images/light.jpg" data-caption="Описание 3"> <img src="images/light.jpg" alt=""> </a> </div> </div> <div class="uk-h3">Fade</div> <div class="uk-child-width-1-3@m" uk-grid uk-lightbox="animation: fade"> <div> <a class="uk-inline" href="images/photo.jpg" data-caption="Описание 1"> <img src="images/photo.jpg" alt=""> </a> </div> <div> <a class="uk-inline" href="images/dark.jpg" data-caption="Описание 2"> <img src="images/dark.jpg" alt=""> </a> </div> <div> <a class="uk-inline" href="images/light.jpg" data-caption="Описание 3"> <img src="images/light.jpg" alt=""> </a> </div> </div> <div class="uk-h3">Scale</div> <div class="uk-child-width-1-3@m" uk-grid uk-lightbox="animation: scale"> <div> <a class="uk-inline" href="images/photo.jpg" data-caption="Описание 1"> <img src="images/photo.jpg" alt=""> </a> </div> <div> <a class="uk-inline" href="images/dark.jpg" data-caption="Описание 2"> <img src="images/dark.jpg" alt=""> </a> </div> <div> <a class="uk-inline" href="images/light.jpg" data-caption="Описание 3"> <img src="images/light.jpg" alt=""> </a> </div> </div>
Источники контента
Лайтбокс не ограничен изображениями. Другие медиа, такие как видео, также могут отображаться.
Видео будет приостановлено, когда лайтбокс не активен, и возобновится, как только оно снова станет видимым.
Чтобы отобразить изображение обложки для видео, установите атрибут data-poster
.
<div uk-lightbox>
<a class="uk-button" href="video.mp4" data-poster="image.jpg"></a>
<a class="uk-button" href="https://www.youtube.com/watch?v=YE7VzlLtp-4"></a>
<a class="uk-button" href="https://vimeo.com/1084537"></a>
<a class="uk-button" href="https://www.google.com/maps"></a>
</div>
<div uk-lightbox> <a class="uk-button uk-button-default" href="images/photo.jpg" data-caption="Image">Изображение</a> <a class="uk-button uk-button-default" href="https://quirksmode.org/html5/videos/big_buck_bunny.mp4" data-caption="Video">Video</a> <a class="uk-button uk-button-default" href="https://www.youtube.com/watch?v=YE7VzlLtp-4" data-caption="YouTube">YouTube</a> <a class="uk-button uk-button-default" href="https://vimeo.com/1084537" data-caption="Vimeo">Vimeo</a> <a class="uk-button uk-button-default" href="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d4740.819266853735!2d9.99008871708242!3d53.550454675412404!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x3f9d24afe84a0263!2sRathaus!5e0!3m2!1sde!2sde!4v1499675200938" data-caption="Google Maps" data-type="iframe">Google Maps</a> </div>
Внимание Используйте youtube-nocookie.com
внутри ссылки YouTube и лайтбокс будет использовать домен для встраивания видео YouTube.
Пользовательский тип контента
Лайтбокс использует атрибут href
для определения типа связанного контента.
Если в пути не указано расширение имени файла, просто добавьте атрибут data-type
к тегу <a>
.
Внимание URL-адреса YouTube и Vimeo будут обрабатываться автоматически.
Опция | Описание |
---|---|
data-type="image" |
Тип контента - изображение |
data-type="video" |
Тип контента - видео. |
data-type="iframe" |
Тип контента - обычный сайт. |
Опции компонента
Любой из этих параметров может быть применен к атрибуту компонента. Разделяйте несколько вариантов точкой с запятой. Как конфигурировать
Лайтбокс
Опция | Значение | По умолчанию | Описание |
---|---|---|---|
animation |
String | slide |
Режим анимации: slide , fade или scale . |
autoplay |
Number | 0 |
Автоматическое воспроизведение. (Задержка в миллисекундах) |
autoplay-interval |
Number | 0 |
Задержка между переключением слайдов в режиме автоматического воспроизведения. |
pause-on-hover |
Boolean | false | Останавливать воспроизведение при наведении. |
video-autoplay |
Boolean | false | Автоматическое воспроизведение видео. |
index |
String, Integer | 0 | Элемент лайтбокса для показа. Индекс на основе 0. |
toggle |
CSS selector | a |
Переключатель - открывает панель лайтбокса при нажатии. |
JavaScript
Подробнее о компонентах JavaScript.
Инициализация
// Чтобы применить лайтбокс к группе ссылок
UIkit.lightbox(element, options);
// Для динамической инициализации панели лайтбокса
UIkit.lightboxPanel(panelOptions);
Методы
Для компонента доступны следующие методы:
Show
UIkit.lightbox(element).show(index);
Показывает панель и элемент лайтбокса.
Hide
UIkit.lightbox(element).hide();
Скрывает лайтбокс.
Опции панели лайтбокса
Если вы хотите использовать панель лайтбокса только через API JS, установите следующие параметры.
Опция | Значение | По умолчанию | Описание |
---|---|---|---|
animation |
String | slide |
Режим анимации: slide , fade или scale . |
autoplay |
Boolean | false |
Автовоспроизведение. |
autoplay-interval |
Number | 7000 |
Задержка между переключением слайдов в режиме автовоспроизведения. |
pause-on-hover |
Boolean | false |
Режим паузы при наведении. |
video-autoplay |
Boolean | false |
Режим автоматического воспроизведения видео. |
index |
Number | 0 |
Элемент лайтбокса для показа. Индекс на основе 0. |
velocity |
Number | 2 |
Скорость анимации (пиксель / мс). |
preload |
Number | 1 |
Количество элементов для предварительной загрузки. (слева и справа от текущего активного элемента) |
items |
Array | [] |
Массив элементов для отображения, например, [{source: 'images/size1.jpg', caption: '900x600'}] |
template |
String | Default markup | Строка шаблона. |
delay-controls |
Number | 3000 |
Время задержки до исчезновения элементов управления в миллисекундах. |
События
Следующие события будут инициированы для элементов, связанных с этим компонентом:
Имя | Описание |
---|---|
beforeshow |
Срабатывает до появления лайтбокса. |
beforehide |
Срабатывает до того, как лайтбокс скрыт. |
show |
Срабатывает после показа лайтбокса. |
shown |
Срабатывает после завершения анимации появления лайтбокса. |
hide |
Запускается после запуска анимации скрытия лайтбокса. |
hidden |
Срабатывает после того, как лайтбокс скрыт. |
itemload |
Срабатывает, когда элемент загружается. |
beforeitemshow |
Срабатывает до показа элемента. |
itemshow |
Срабатывает после показа элемента. |
itemshown |
Запускается после завершения анимации появления элемента. |
beforeitemhide |
Срабатывает до того, как элемент скрыт. |
itemhide |
Срабатывает после запуска анимации скрытия элемента. |
itemhidden |
Запускается после завершения анимации скрытия элемента. |
Методы
Для компонента доступны следующие методы:
Show
UIkit.lightboxPanel(element).show(index);
Показывает панель лайтбокса и элемент.
Имя | Тип | По умолчанию | Описание |
---|---|---|---|
index |
String, Integer | 0 | Порядковый номер элемента для отображения. Начинается с 0. |
Hide
UIkit.lightboxPanel(element).hide();
Скрывает лайтбокс
startAutoplay
UIkit.lightboxPanel(element).startAutoplay();
Автозапуск лайтбокса.
stopAutoplay
UIkit.lightboxPanel(element).stopAutoplay();
Останавливает автоматическое воспроизведение