Как сделать простой слайдер на HTML и JavaScript — журнал «Доктайп»
Вы сверстали сайт и сделали его красивым с помощью CSS. Осталось добавить интерактива, и можно добавлять проект в портфолио.
«Оживить» на сайте можно что угодно: меню, модальные окна, корзину, пагинацию… В этой статье мы разберём слайдер — посмотрим, как его сделать на чистом JavaScript. Слайдер пригодится для раздела с отзывами, фотографиями сотрудников, изображениями товаров или чего-нибудь ещё — всё зависит только от вашей фантазии и проекта.
☝ Мы покажем лишь один из возможных вариантов. Это не эталонное решение, да в разработке и не бывает единственно верного способа решить задачу. Но код точно работает, поэтому можете скопировать его в свой проект.
Пример простого слайдера на чистом JavaScript
See the Pen Untitled by Feizerr (@feizerr) on CodePen.
Скачать слайдер
Что здесь происходит
- Мы ищем в HTML-разметке контейнер слайдера, кнопки и изображения. Записываем всё в переменные.
- Находим общее количество слайдов. Затем создаём переменную
slideIndex
и делаем её равной0
— это индекс активного слайда - Добавляем обработчики событий на кнопки, чтобы реагировать на клики пользователя.
- Когда пользователь нажимает на кнопку
.prev-button
, мы переключаемся на предыдущий слайд (если текущий слайд не первый) и обновляем отображение слайдера. - Когда пользователь нажимает на кнопку
.next-button
, переключаемся на следующий слайд (если текущий слайд не последний) и обновляем отображение слайдера. - Функция
updateSlider()
обновляет отображение слайдера, показывая только текущий слайд и скрывая остальные. - При загрузке страницы мы вызываем
updateSlider()
, чтобы отобразить первый слайд и настроить слайдер для начала работы.
Этот код можно бесконечно менять и дорабатывать: настроить анимацию, удалить зацикливание или сделать слайдер адаптивным. Или можно использовать наш пример, чтобы понять, как работает слайдер, а затем написать свой код — ещё проще и чище.
Популярные библиотеки для слайдеров
Если слайдер нужен здесь и сейчас, но писать с нуля не хочется, а пример выше не подходит — используйте библиотеки.
Slick
Гибкая библиотека для адаптивных слайдеров. Здесь можно настроить показ одного или нескольких слайдов, включить автоматическое переключение и задать скорость смены слайдов, подключить ленивую загрузку, настроить стрелки и пагинацию.
Скачать
Swiper
«Самый современный мобильный сенсорный слайдер» — так разработчики говорят о своей библиотеке. В ней есть плавные переходы, 3D-анимации, автоматическое переключение слайдов, пагинация и навигация. А ещё здесь гибкие макеты: можно размещать слайды в несколько строк, добавлять несколько слайдов в столбец, управлять расстояниями между слайдами.
Скачать
Owl Carousel
Простая в использовании библиотека, подойдёт даже новичкам. Она поддерживает различные переходы и анимации, есть настройки для автоматического переключения слайдов и пагинация.
Скачать
Glide.js
Легковесная и быстрая библиотека: со всеми функциями она весит всего 28 КБ (8 КБ в сжатом виде). При этом подключать всё необязательно — лишние модули можно удалить, и тогда она станет ещё легче.
Параметров много. Можно настроить автоматическую прокрутку, добавить анимации, указать минимальное расстояние для смены слайда, включить зацикливание… Почти всё то же, что и в других библиотеках.
Скачать
Какую из библиотек использовать — решать вам. У каждой понятная документация с примерами кода, вы точно разберётесь, как создать слайдер. И у всех гибкие настройки. Поэтому попробуйте поработать с каждой библиотекой или просто посмотрите примеры и выберите ту, что больше нравится и подходит вам.
🚀 Чтобы делать слайдеры любой сложности и вообще что угодно в вебе, приходите на профессию «JavaScript-разработчик».
Записаться на курс
Материалы по теме
- Стоит ли делать слайдеры на CSS
- 9 книг по JavaScript для начинающих
- Как работают колбэки в JavaScript
- Как составлять регулярные выражения
- Как сделать список задач с drag & drop
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
ТелеграмПодкастБесплатные учебники
Читать дальше
Как составлять регулярные выражения
И больше не гуглить их в интернете.
JavaScript- 5 июня 2023
Проверка типа интерфейса в TypeScript
Избавляемся от ошибок в программе.
JavaScript- 30 мая 2023
9 книг по JavaScript для начинающих в 2023
Мартин, Фаулер, Симпсон и другие.
JavaScript- 25 мая 2023
Установка Node.js на Windows и macOS
- 24 мая 2023
Жадные алгоритмы.
Задачи о размене, рюкзаке и о задачахМы добавили задачу в вашу задачу о задачах, чтобы вы решали задачу, пока решаете задачу.
JavaScript- 2 мая 2023
5 книг по паттернам проектирования, которые улучшат ваш код
Каждый найдёт подходящее для себя.
JavaScript- 18 апреля 2023
В чём разница между интерфейсами и типами в TypeScript
Отвечаем на популярный вопрос с собеседований.
JavaScript- 14 апреля 2023
Как собрать проект на Webpack. Простой гайд для новичков
Простейший пример для тех, кому надо разобраться по работе или учёбе.
JavaScript- 7 апреля 2023
XSS-уязвимости и как их избежать
Разбираемся в популярном типе атак в вебе.
- 7 апреля 2023
Операторы spread и rest в React
Объясняем разницу между тремя точками.
JavaScript- 31 марта 2023
34 слайдера диапазона JavaScript
Коллекция бесплатных ванильных слайдеров диапазона JavaScript примеров кода. Обновление коллекции апреля 2020 года. 24 новинки.
- Ползунки диапазона CSS
- Ползунки диапазона jQuery
О коде
Диапазон
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
О коде
CSS Тепловая карта Ползунок Вход
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: нет
Зависимости: —
О коде
Таблетки диапазона
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
О коде
Ползунок диапазона
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Отвечает: да
Зависимости: —
О коде
Ползунок любви
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: gsap.
О коде
Ввод диапазона
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: нет
Зависимости: —
О коде
Вход пользовательского диапазона
Ввод пользовательского диапазона со значениями привязки, сделанными с помощью GSAP Draggable.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: gsap.js
О коде
Пользовательский веб-компонент — ползунок диапазона
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: нет
Зависимости: —
О коде
Ползунок диапазона
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: animate.css
О коде
Ползунок пользовательского диапазона
Совместимые браузеры: Chrome, Edge, Opera, Safari
Ответ: нет
Зависимости: —
О коде
Датчик волнистых чисел
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: gsap. js
О коде
Neumorphic Ranges с шариковой ручкой
Еще одно интересное неоморфное исследование.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
О коде
Слайдеры диапазона с вращающимся счетчиком
Следите за тем, как цифры встают на свои места, когда вы настраиваете эти ползунки диапазона.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
О коде
Резиновый слайдер v2
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: нет
Зависимости: nouislider.js, gsap.js
О коде
Ползунок диапазона Яркость
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: font-awesome.css
О коде
Ползунок диапазона с текстом
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
О коде
Ползунок пользовательского диапазона со значениями
Ответ: да
Зависимости: —
О коде
Ползунок ярости
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
О коде
Слайдер для одноколесного велосипеда
Ввод диапазона, где фигурка находится на одноколесном велосипеде, колесо которого является ручкой. Наблюдайте за тем, как он торгует вразнос, и на флаге отображается значение, когда вы перетаскиваете колесо влево и вправо.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
О коде
Ползунок с заливкой и настраиваемыми делениями
Ползунок с заполнением дорожки, настраиваемыми делениями и метками минимума/максимума.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
О коде
Ползунок рейтинга
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: нет
Зависимости: gsap.js, draggable.js, morphsvgplugin.js, inertiaplugin.js
О коде
Реалистичный слайдер с несколькими ручками #8
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: нет
Зависимости: —
О коде
Слайдер с несколькими ручками
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Отвечает: да
Зависимости: —
О коде
Слайдер трансформирующихся эмодзи
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: нет
Зависимости: gsap. js, draggable3.js, morphsvgplugin.js, inertiaplugin.js
О коде
Регулятор диапазона с GSAP
Простой ползунок диапазона.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: gsap.js
О коде
Ползунок диапазона
Ползунок диапазона ванильный JavaScript.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: nouislider.css, nouislider.js
О коде
Глючный эластичный слайдер
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Отвечает: нет
Зависимости: tweenmax.js
О коде
Регулятор температуры для умного дома
Концепция температуры воды в умном доме.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: tweenmax.
О коде
Многодиапазонный ползунок
Нет зависимостей. Клавиатура доступна.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
О коде
Многодиапазонный ползунок
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
О коде
Слайдеры с плоским диапазоном
Анимированный ползунок с плоским диапазоном с помощью noUiSlider.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Отвечает: да
Зависимости: nouislider.js
О коде
Вертикальный диапазон ввода Кросс-браузерная поддержка
Вертикальные кросс-браузерные поддерживаемые HTML-элементы диапазона ввода, без зависимости от библиотеки, без поворота преобразования.
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
О коде
Тип ввода Диапазон #3
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
О коде
Тип ввода Диапазон #6
Совместимые браузеры: Chrome, Edge, Firefox, Opera, Safari
Ответ: да
Зависимости: —
Slider Revolution Manual — Пользовательские CSS и JavaScript с помощью Slider Revolution
Справочный центр/Руководство/Промежуточное редактирование/Дополнительное редактирование шаблонов/Пользовательские CSS и JS
Пользовательские CSS и JavaScript с помощью Slider Revolution
Узнайте, как интегрировать собственный код с помощью встроенных инструментов Slider Revolution.
Содержание
- Инструменты пользовательского кода
- Доступ к редактору пользовательского кода
- Пользовательский CSS
- Класс или идентификатор пользовательского модуля
- Класс или идентификатор пользовательского слайда
- Класс или идентификатор пользовательского слоя 9 0397
- JS API
- Методы и события API
- Пользовательский JS между модулями
Инструменты пользовательского кода
Slider Revolution предоставляет набор удобных для разработчиков инструментов, которые помогут вам добавить свои собственные пользовательские CSS и JS для дальнейшего улучшения ваших модулей или управления ими.
Включает встроенный редактор кода CSS и JS:
API-интерфейс JavaScript, предоставляющий методы и события:
И возможность интегрировать пользовательские классы и идентификаторы в ваши модули, на которые вы можете ориентироваться на свои собственные CSS и JS.
Давайте посмотрим, как работают все эти инструменты.
Доступ к редактору пользовательского кодаПерейдите в Общие параметры модуля , затем нажмите CSS/jQuery :
Появится всплывающее окно с двумя вкладками, помеченными как CUSTOM CSS и CUSTOM JS :
Основная часть этого окна представляет собой редактор кода, в который вы можете добавить свой собственный код CSS или JS:
Пользовательский CSSДобавьте любой пользовательский CSS, который вы хотите, добавив его через вкладку CSS редактора пользовательского кода:
Пользовательский CSS обычно лучше всего использовать вместе с добавлением пользовательского класса или идентификатора, чтобы у вас была четко определенная цель для ваших стилей.
Пользовательские классы и идентификаторы можно применять ко всему модулю, к слайдам или слоям.
Класс или идентификатор пользовательского модуляЧтобы добавить пользовательский класс или идентификатор для всего модуля, перейдите на вкладку Общие параметры модуля и в подраздел Defaults :
Там, в Основы по умолчанию , вы увидите три опции, которые можно использовать для применения классов и идентификатора ко всему модулю; это идентификатор модуля , классы модулей и классы оболочки :
Чтобы добавить к вашему модулю пользовательский идентификатор, введите его в поле ID модуля :
В это поле можно добавить только один пользовательский идентификатор.
Чтобы добавить пользовательские классы, введите их в поля Module Classes или Wrapper Classes :
Различие между этими полями обсуждается ниже.
Если вы хотите добавить несколько классов в одно из этих полей, разделите их запятой.
Уровень оболочки и модуля Slider Revolution использует два пользовательских HTML-элемента в качестве внешних элементов каждого модуля. Это элемент
, внутри которого находится элемент
:
Модуль ID и Классы модулей Параметры будут применяться к элементу
. Например, здесь вы можете увидеть элемент
с идентификатором «custom_module_id» и классом «custom_module_class»:
Идентификатор модуля будет дополнительно использоваться для создания идентификатора элемента
Обертка Классы 9Параметр 0004 будет применяться к элементу
. Например, в этом элементе
идентификатор «custom_module_class»:
Чтобы присвоить слайду пользовательский класс или идентификатор, перейдите на его вкладку Параметры слайда , затем в подраздел Теги и ссылки :
На панели Slide HTML Tags можно установить класс в поле Classes и идентификатор в поле ID поле:
Если вы хотите добавить несколько классов, разделите их запятой.
Пользовательский класс слоя или идентификаторЧтобы присвоить слою пользовательский класс или идентификатор, выберите его, затем перейдите на вкладку Параметры слоя , подраздел Атрибуты :
На панели Атрибуты вы найдете параметры для установки классов и идентификаторов на уровне Layer или Wrapper .
Слой против уровня оболочки Аналогично тому, что мы обсуждали ранее о добавлении классов и идентификаторов к элементам
и
для всего модуля, каждый слой также имеет два настраиваемых элемента, к которым можно добавить настраиваемые элементы. классы и идентификаторы. В этом случае пользовательскими элементами являются
и, вложенные внутрь,
:
Чтобы установить идентификатор для элемента
, добавьте его к идентификатору слоя вариант:
Чтобы установить класс для элемента
, добавьте имя класса, которое вы хотите использовать, в параметр Classes непосредственно под параметром Layer ID :
Например, вот элемент
с идентификатором «custom_layer_id» и классом «custom_layer_class»:
Если вы хотите добавить несколько классов, разделите их запятой.
Чтобы вместо этого установить идентификатор для
, добавьте его в Wrapper ID вариант:
И чтобы установить класс для элемента
, добавьте имена классов, которые вы хотите использовать, в параметр Classes непосредственно под параметром Wrapper ID :
Например, вот элемент
с идентификатором «custom_layer_wrapper_id» и классом «custom_layer_wrapper_class»:
В правой части окна вы увидите полосу с надписью 9.0003 API :
Щелкнув по этой строке, вы откроете панель API , содержащую список всех методов и событий JS, доступных для управления функциями вашего модуля:
У каждого предмета справа есть удобная кнопка + , которая при нажатии будет вставлять код этого предмета:
API-методы и событияКак показано выше, верхняя часть панели API содержит доступные методы.
Прокрутите вниз до нижней части панели доступных событий:
Методы используются для выполнения действий в модуле, в то время как события отслеживают события в модуле.
Например, с методами, если нажать кнопку Ползунок паузы +
:
Код, необходимый для метода revpause()
для приостановки ползунка, автоматически добавляется в редактор CSS/JS :
И вы могли бы использовать revresume()
метод повторного запуска:
С событиями вы можете нажать кнопку Slider Paused +
, чтобы связать событие onpause
для определения, когда слайдер был приостановлен:
Это автоматически добавляет требуемый код onpause
в редактор CSS/JS :
Чтобы определить, когда слайдер воспроизводится снова, вы можете нажать кнопку Ползунок воспроизводится после паузы +
, чтобы связать onresume
событие:
Вы заметите, что каждый раз, когда вы нажимаете одну из кнопок API + и вставляете метод или событие, ему предшествует уникальный идентификатор API, например.