Сarousel - стандартный JavaScript компонент в составе фронтенд фреймоворка Bootstrap, являющийся удобным инструментом демонстрации баннеров в составе слайдера.
При необходимости изображение в составе баннера может сопровождаться заголовком и описанием.
Содержание
Цели урока
В данном руководстве мы изучим:
как добавить компонент carousel на страницу,
научимся использовать дополнительные параметры (options) конфигурирования карусели,
научимся управлять поведением (behaviour) карусели.
C помощью CDN мы подключаем файл стилей Bootstrap и минифицированную JavaScript библиотеку Bootstrap,
JavaScript Bootstrap зависит от jQuery и PopperJS, поэтому не забываем подключить и эти библиотеки, в данном случае тоже с помощью CDN
Карусель помещаем в блок.container. Так как мы хотим, чтобы выводимые изображения занимали всю ширину бутстраповского контейнера, классы .row или .col-* использовать нельзя.
Сама карусель, основным элементом которой является div.carousel, состоит из трех частей:
ol.carousel-indicators: пагинация (навигация) обычно расположенная в нижней части карусели,
div.carousel-inner: обертка для контента карусели (тело карусели),
a.carousel-control-prev и a.carousel-control-next: навигация для соседних элементов карусели (или “стрелки”).
Элементы карусели
Чтобы создать карусель с помощью Bootstrap достаточно добавить элементу div класс .carousel и присвоить уникальный id, в данном случае id="carousel-basic".
Дополнительные параметры карусели можно определять с помощью data-атрибутов.
data-ride="carousel" включает автопроигрывание.
Итак, основной блок (обертка) карусели имеет такой вид:
...
Индикаторы (carousel-indicators)
Индикаторы - необязательные (опциональные) элементы карусели, заключенные в блок . Каждый элемент списка li в данном блоке должен соответствовать определенному слайду (обычно - изображению) из .carousel-inner.
Для каждого индикатора li существуют два обязательных data-атрибута:
data-target - соответствует id карусели
data-slide-to - указатель на порядковый номер слайда, соответствующего определенному индикатору (отсчет начинается с цифры 0 сверху вниз, например: 0 - первый слайд, 1 - второй слайд).
При старте первый элемент li должен иметь класс .active:
Тело карусели
Как мы уже говорили ранее, основной контент карусели обернут в блок
.
Родительским блоком каждого слайда является
. Кроме того, у первого слайда должен быть класс .active. Обычно слайд содержит изображение или изображение с описанием.
Чтобы создать описание (caption), нужно поместить элемент
в родительский блок слайда.
Карусель
это демонстрация возможностей компонента carousel
...
Переход к соседним элементам (prev и next)
Для перехода к следующему или предыдущему слайду, достаточно добавить в карусель два элемента .
Аттрибут href обеих ссылок должен содержать id карусели, а data-атрибут data-slide должен содержать одно из двух значений: prev - для перехода к предыдущему слайда или next - для перехода к следующему слайду.
В предыдущем разделе мы научились создавать карусель с помощью штатных инструментов Bootstrap. Самое время изучить дополнительные параметры.
interval
наименвание: interval
тип данных: number (число)
значение по умолчанию: 5000
период смены слайдов, если значение равно 0, автоматической смены слайдов не будет
pause
наименование: pause
тип данных: string | null (строка или null)
значение по умолчанию: “hover”
если установлено значение “hover”, смена слайдов будет останавливаться в ответ на событие mouseenter и продолжаться в ответ на событие mouseleave; если установлено значение “null”, остановки смены слайдов не будет
wrap
наименование: wrap
тип данных: boolean
значение по умолчанию: true
значение “true” определяет бесконечную смену слайдов, “false” - только один цикл смены слайдов: от первого до последнего
keyboard
наименование: keyboard
тип данных: boolean
значение по умолчанию: true
определяет реакцию карусели на клавиатуру
Дополнительные параметры (опции) можно установить с помощью data-атрибутов карусели или через JavaScript.
Полноэкранная карусель (fullscreen carousel) с описанием центрированным по вертикали
Создание полноэкранного слайдера, с выравниванием сопутствующего текста по центру как по горизонтали, так и по вертикали - пожалуй самый востребованный вариант модификации карусели Bootstrap.
CSS
Для решения поставленной задачи определим высоту элемента: 100 vh. Для минимальной высоты установим значение 600px, чтобы гарантировать адекватный вывод текста на устройствах с небольшими экранами.
Для центрирования текста по вертикали нам пригодится transform: transition(0,-50%);
Так же потребуется немного изменить HTML-код: вместо установим изображение фоном для элемента .carousel-item и уберем обертку .container:
...
Карусель
это демонстрация возможностей компонента carousel
...
Затемнение
Для улучшения читабильности текста довольно часто появляется необходимость затемнить слайд. Сделать это довольно легко - достаточно создать дополнительный элемент div.overlay в блоке
.
CSS
/* overlay for better readibility of the caption */
.overlay {
position: absolute;
width: 100%;
height: 100%;
background: #000;
opacity: 0.3;
transition: all 0.2s ease-out;
}
HTML
...
Эффекты смены слайдов
Чтобы заменить эффект смены слайдов и заменить slide на fade достаточно добавить карусели класс .carousel-fade
Время смены слайдов
По умолчанию процесс смены слайдов длится 0,6 секунды. Это может быть слишком быстро, особенно когда установлен эффект перехода “fade”, изменить этот показатель можно с помощью свойства transition-duration.