Как сделать слайдер по центру

Добавил пользователь Дмитрий К.
Обновлено: 10.09.2024

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

Примечание Данная статья — лишь небольшое погружение в мир фронтенд-разработки, ведь современный веб не ограничивается знанием HTML/CSS/JavaScript. Чтобы стать востребованным веб-разработчиком, необходимо осваивать дополнительные библиотеки и фреймворки, которые часто строго разделены между фронтендом и бэкендом.

Что понадобится?

Можно сразу скачать IDE вроде WebStorm, но при обучении веб-разработке с нуля можно начать и в онлайн-редакторе. Мы будем использовать CodePen — популярный онлайн-редактор для веб-разработчиков с мгновенным отображением результата. Но если вы уже начали работу в какой-либо другой среде и считаете, что она намного удобнее, просто убедитесь, что есть поддержка HTML/CSS/JavaScript.

Пишем код

На различных курсах веб-разработки знакомство с фронтендом начинается с описания основных технологий, а именно:

Обучение веб-разработке стоит начать с HTML, так как это каркас сайта. Каждый HTML-документ имеет стандартную структуру:

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

Слайдер изображений - это отличный способ отображения различных изображений веб-страницы. Красивые и интересные изображения могут привлечь много посетителей на вашу веб-страницу.

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

Создание слайдеров изображений используя только CSS3

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

Slick slider — это jQuery плагин для быстрого создания на сайте адаптивного слайдера любой сложности. Его функционал позволяет реализовать зацикливание, автопроигрывание, эффекты перехода и многое другое. Отдельно выделю возможность пролистывания слайдера пальцем на устройствах с сенсорным экраном.

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

Примеры использования

Вызов без параметров

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

Несколько слайдов

Отобразим 3 слайда с параметрами зацикленной прокрутки (infinite), отображением навигационных точек (dots) и количеством прокручиваемых за раз слайдов (slidesToScroll).

Режим центрирования

Адаптивность

Здесь по умолчанию устанавливается отображение в ряд 3 слайда. Если ширина видимой области браузера от 768 до 481 пикселя — 2. И один, если ширина менее 480 пикселей.

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

Настройки

В таблице приведены основные настройки. Полный перечень на сайте разработчика.

ПараметрТипDefaultОписание
adaptiveHeightbooleanfalseВключает адаптирование высоты для одиночкного слайда горизонтальной карусели
autoplaybooleanfalseАвтоматическая прокрутка
autoplaySpeedint(ms)3000Скорость автопрокрутки в милисекундах
arrowsbooleantrueПоказ/скрытие навигационных кнопок
prevArrowhtmlbuttonЗамена стандартной кнопки Preview
nextArrowhtmlbuttonЗамена стандартной кнопки Next
dotsbooleanfalseПоказ/скрытие навигационных точек под слайдером
draggablebooleantrueВключает/выключает способность перелистывания слайдера перетаскиванием мышью
fadebooleanfalseЭффект затухания при перелистывании слайдов
focusOnSelectbooleanfalseУстанавливает фокус на выбранный элемент карусели при клике
easingstring'linear'Анимационные эффекты перехода, их набор зависит от подключенных jQuery Easing плагинов
edgeFrictioninteger0.15Сопротивление при попытки прокрутить карусель, когда дальше нет слайдов и она не зацилена
infinitebooleantrueБесконечное прокручивание (зацикливание)
initialSlideinteger0Номер слайда, с которого начинать показ
lazyLoadstring'ondemand'Тип подгрузки слайдов. Принимает 'ondemand' или 'progressive'
pauseOnHoverbooleantrueПауза автопроигрывания при наведении мыши
pauseOnDotsHoverbooleanfalseПауза автопроигрывания при наведении мыши на навигационные точки
pauseOnHoverbooleantrueПауза автопроигрывания при наведении мыши
rowsint1 Может быть 'window', 'slider' или 'min'

Методы

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

slickCurrentSlide — возвращает номер текущего слайда. Отсчёт ведётся с нуля.

slickGoTo — переходит к слайду с указанным номером.

slickNext — прокручивает на один слайд вперёд.

slickPrev — прокручивает на один слайд назад.

slickPause — останавливает автоматическую прокрутку.

slickPlay — запускает автоматическую прокрутку.

События


Плагин bxSlider — отзывчивый jQuery-слайдер для контента. Наличие большого количества настроек позволяет адаптировать слайдер под конкретные нужды вашего проекта.

Преимущества:

  • адаптируется под любое устройство;
  • слайды сменяются как по горизонтали, так и по вертикали, есть режим выцветания (fade);
  • слайды могут содержать изображения, видео или любое html-содержимое;
  • работает на сенсорных экранах;
  • для смены слайдов используются css-переходы, что даёт аппаратное ускорение;
  • полный API обратного вызова и открытые методы (before, after, first, last, next, prev);
  • хорошая поддержка браузерами: Firefox, Chrome, Safari, iOS, Android, IE7+.

1. Как установить bxslider

Шаг 1. Добавьте ссылки на необходимые файлы

Скачайте архив с файлами с официального сайта. Создайте на сервере папку с названием плагина, например, bxslider . Закачайте в неё файлы jquery.bxslider.min.js и jquery.bxslider.css . Для работы плагина добавьте в раздел head ссылки на файлы в следующем порядке:

1) ссылка на файл со стилями jquery.bxslider.css . Таблицу стилей подключайте в том случае, если не собираетесь вносить изменения во внешний вид слайдера;
2) ссылка на библиотеку jQuery;
3) ссылка на файл со скриптом jquery.bxslider.min.js .

Вместо строчки путь_к_файлу_на_вашем_сервере укажите реальный путь к файлу, хранящемуся на вашем сервере.

Если вы будете добавлять в слайдер видео или использовать функции перехода, то вам понадобятся ещё два файла из папки plugins скачанного архива: jquery.easing.1.3.js и jquery.fitvids.js .

Шаг 2. Создайте html-разметку

Создайте маркированный список с классом bxslider . Каждый элемент списка — отдельный слайд. В качестве содержимого может быть картинка, видео или другой html-контент.

Шаг 3. Вызовите bxslider

    с помощью jQuery.

2. Настройки bxslider

Слайдер — это некий объект, который имеет свойства и их возможные значения. Некоторые свойства уже активизированы при инициализации (вызове) слайдера. Поэтому пользовательская настройка слайдера заключается в отмене тех или иных свойств или в добавлении новых.

Например, captions: false означает, что подписи к слайдам отключены по умолчанию. Чтобы добавить вывод подписей к слайдам, нужно задать captions: true .

2.1. Общие настройки

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

mode — тип перехода между слайдами.

speed — скорость смены слайдов

slideMargin — отступ между каждым слайдом.

startSlide — индекс начального слайда (начинается с нуля).

randomStart — запуск слайдера с произвольного слайда.

slideSelector — добавляет элемент-контейнер, который будет использоваться как слайдер.

infiniteLoop — если задано true , при нажатии кнопки Next на последнем слайде будет осуществлён переход к первому слайду и наоборот.

hideControlOnEnd — если задано true , кнопка Next будет скрыта на последнем слайде и наоборот.

easing — тип перехода между слайдами. Если используются css-переходы, включаются значения transition-timing-function . Если css-переходы не используется, можно подключить плагин easing.

captions — добавляет подписи к картинкам. Название берётся из значения атрибута title .

ticker — бегущая строка из слайдов.

tickerHover — останавливает движение слайдов при наведении мышью. Не работает, если используются css-переходы.

adaptiveHeight — динамическая регулировка высоты слайдера в соответствии с высотой каждого слайда.

adaptiveHeightSpeed — длительность перехода в миллисекундах при динамической регулировке высоты слайда, работает только для adaptiveHeight: true .

video — если какой-нибудь слайд содержит видео, установите video: true . Также подключите plugins/jquery.fitvids.js .

responsive — включает или отключает адаптивность слайдера.

useCSS — если задано true , для вертикальной и горизонтальной анимации слайдов будут использоваться css-переходы. В противном случае подключите плагин easing.

preloadImages — если задано preloadImages:'all' , все картинки будут загружены перед началом показа. В противном случае будет загружен только начальный слайд.

touchEnabled — включает и отключает перелистывание слайдов пальцем для сенсорных экранов.

swipeThreshold — количество пикселей, превышение которого выполнит переход слайдов.

oneToOneTouch — если задано true , слайды, не использующие выцветание, будут перемещаться следом за пальцем.

preventDefaultSwipeX — если задано true , сенсорный экран не будет двигаться вдоль оси X при листании слайдов пальцем.

preventDefaultSwipeY — если задано true , сенсорный экран не будет двигаться вдоль оси Y при листании слайдов пальцем.

2.2. Счётчик количества слайдов

pager — если задано true , будет выводиться индикатор количества слайдов.

pagerType — если задано pagerType: 'full' , счётчик будет содержать цифровые ссылки для каждого слайда, если задано 'short' , то будет запись вида 1/5 .

pagerShortSeparator — тип разделителя цифр для pagerType: 'short' .

pagerSelector — регистрирует элемент-контейнер с указанным классом или идентификатором, который содержит счётчик.

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

buildPager — если установлен, функция вызывается на каждый слайд, возвращаемое значение используется в качестве мини-эскиза в счётчике.

2.3. Элементы управления

controls — если задано true , будут показаны элементы управления Next / Prev.

nextText — текст, который используется для кнопки Next.

prevText — текст, который используется для кнопки Prev.

nextSelector — элемент-контейнер для кнопки Next.

prevSelector — элемент-контейнер для кнопки Prev.

autoControls — если задано true , будут добавлены кнопки Start / Stop.

startText — текст, который будет использоваться для кнопки Start.

stopText — текст, который будет использоваться для кнопки Stop.

autoControlsCombine — когда слайдшоу запущено, будет отображаться только кнопка Stop и наоборот.

autoControlsSelector — элемент-контейнер для кнопок Start / Stop.

2.4. Автоматический показ слайдов

auto — настраивает автоматическую смену слайдов.

pause — количество времени в миллисекундах между каждым переходом.

autoStart — автоматическая смена слайдов начинается при загрузке слайда. Если указано false , показ начнётся при нажатии на кнопку Start.

autoDirection — направление смены слайдов (с начала или с конца).

autoHover — автоматический показ слайдов будет остановлен при наведении мышью на слайдер.

autoDelay — время задержки с миллисекундах перед запуском показа слайдов .

2.5. Карусель

minSlides — минимальное количество слайдов для показа. Слайды будут уменьшены (обрезаны), если карусель станет меньше первоначального размера.

maxSlides — максимальное количество слайдов. Слайды будут увеличены в размере, если карусель станет больше оригинального размера.

moveSlides — количество слайдов, перемещающихся вместе при смене слайда. Количество должно быть больше или равно minSlides и меньше или равно maxSlides. По умолчанию используется количество полностью видимых слайдов.

slideWidth — ширина каждого слайда, обязательна для карусели.

2.6. Функции обратного вызова

onSliderLoad — выполняет сразу после того, как слайдер полностью загружен.

onSlideBefore — выполняется непосредственно перед каждой сменой слайда.

onSlideAfter — функция выполняется сразу же после каждого перехода между слайдами. Аргументом функции является текущий элемент слайда (когда переход завершается).

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

onSlidePrev — функция выполняется непосредственно перед каждым переходом по кнопке Prev. В качестве аргумента функция принимает предыдущий элемент перехода.

2.7. Публичные методы

goToSlide — выполняет переход между слайдами к слайду с заданным индексом (отсчёт начитается с нуля).

goToNextSlide — выполняет переход к следующему слайду.

goToPrevSlide — переход к предыдущему слайду.

startAuto — запускает автоматический показ слайдов. Используйте аргумент false , чтобы предотвратить поведение кнопки от обновления.

stopAuto — останавливает автоматический показ слайдов. Используйте аргумент false , чтобы предотвратить поведение кнопки от обновления.

getCurrentSlide — возвращает текущий активный слайд.

getSlideCount — возвращает общее количество слайдов в слайдере.

reloadSlider — обновляет слайдер. Полезно в случае добавления слайдов на лету.

destroySlider — разрушает активный слайдер, возвращая все элементы в первоначальное состояние.

3. Примеры настройки и оформления слайдера

Таблица стилей из архива плагина задаёт однообразный и скромный вид слайдера. Воспользуйтесь вариантами ниже или поэкспериментируйте самостоятельно, чтобы украсить ваш слайдер. Для создания адаптивного слайдера необходимо поместить его разметку в блок с относительной шириной, заданной в % . Чтобы отключить текст кнопок управления Next и Prev, задайте в настройках плагина nextText: '', prevText: '' .

Читайте также: