Содержание

Как сделать простой слайдер на HTML и JavaScript — журнал «Доктайп»

Вы сверстали сайт и сделали его красивым с помощью CSS. Осталось добавить интерактива, и можно добавлять проект в портфолио.

«Оживить» на сайте можно что угодно: меню, модальные окна, корзину, пагинацию… В этой статье мы разберём слайдер — посмотрим, как его сделать на чистом JavaScript. Слайдер пригодится для раздела с отзывами, фотографиями сотрудников, изображениями товаров или чего-нибудь ещё — всё зависит только от вашей фантазии и проекта.

☝ Мы покажем лишь один из возможных вариантов. Это не эталонное решение, да в разработке и не бывает единственно верного способа решить задачу. Но код точно работает, поэтому можете скопировать его в свой проект.

Пример простого слайдера на чистом JavaScript

See the Pen Untitled by Feizerr (@feizerr) on CodePen.

Скачать слайдер

Что здесь происходит

  1. Мы ищем в HTML-разметке контейнер слайдера, кнопки и изображения. Записываем всё в переменные.
  2. Находим общее количество слайдов. Затем создаём переменную slideIndex и делаем её равной 0 — это индекс активного слайда
  3. Добавляем обработчики событий на кнопки, чтобы реагировать на клики пользователя.
  4. Когда пользователь нажимает на кнопку .prev-button, мы переключаемся на предыдущий слайд (если текущий слайд не первый) и обновляем отображение слайдера.
  5. Когда пользователь нажимает на кнопку .next-button, переключаемся на следующий слайд (если текущий слайд не последний) и обновляем отображение слайдера.
  6. Функция updateSlider() обновляет отображение слайдера, показывая только текущий слайд и скрывая остальные.
  7. При загрузке страницы мы вызываем 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

Инструкция из двух шагов.

JavaScript

  • 24 мая 2023

Жадные алгоритмы.

Задачи о размене, рюкзаке и о задачах

Мы добавили задачу в вашу задачу о задачах, чтобы вы решали задачу, пока решаете задачу.

JavaScript

  • 2 мая 2023

5 книг по паттернам проектирования, которые улучшат ваш код

Каждый найдёт подходящее для себя.

JavaScript

  • 18 апреля 2023

В чём разница между интерфейсами и типами в TypeScript

Отвечаем на популярный вопрос с собеседований.

JavaScript

  • 14 апреля 2023

Как собрать проект на Webpack. Простой гайд для новичков

Простейший пример для тех, кому надо разобраться по работе или учёбе.

JavaScript

  • 7 апреля 2023

XSS-уязвимости и как их избежать

Разбираемся в популярном типе атак в вебе.

JavaScript

  • 7 апреля 2023

Операторы spread и rest в React

Объясняем разницу между тремя точками.

JavaScript

  • 31 марта 2023

34 слайдера диапазона JavaScript

Коллекция бесплатных ванильных слайдеров диапазона JavaScript примеров кода. Обновление коллекции апреля 2020 года. 24 новинки.

  1. Ползунки диапазона CSS
  2. Ползунки диапазона 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.

js

О коде

Ввод диапазона

Совместимые браузеры: 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

Ответ: да

Зависимости: —

О коде

Ползунок рейтинга

Совместимые браузеры: 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.

js

О коде

Многодиапазонный ползунок

Нет зависимостей. Клавиатура доступна.

Совместимые браузеры: 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»:

    .

    Идентификатор модуля будет дополнительно использоваться для создания идентификатора элемента , к которому будет добавлено «_wrapper». Например, в этом элементе идентификатор «custom_module_id_wrapper»:

    .

    Обертка Классы 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»:

    JS API

    В правой части окна вы увидите полосу с надписью 9.0003 API :

    Щелкнув по этой строке, вы откроете панель API , содержащую список всех методов и событий JS, доступных для управления функциями вашего модуля:

    У каждого предмета справа есть удобная кнопка + , которая при нажатии будет вставлять код этого предмета:

    API-методы и события

    Как показано выше, верхняя часть панели API содержит доступные методы.

    Прокрутите вниз до нижней части панели доступных событий:

    Методы используются для выполнения действий в модуле, в то время как события отслеживают события в модуле.

    Например, с методами, если нажать кнопку Ползунок паузы + :

    Код, необходимый для метода revpause() для приостановки ползунка, автоматически добавляется в редактор CSS/JS :

    И вы могли бы использовать revresume() метод повторного запуска:

    С событиями вы можете нажать кнопку Slider Paused + , чтобы связать событие onpause для определения, когда слайдер был приостановлен:

    Это автоматически добавляет требуемый код onpause в редактор CSS/JS :

    Чтобы определить, когда слайдер воспроизводится снова, вы можете нажать кнопку Ползунок воспроизводится после паузы + , чтобы связать onresume событие:

    Пользовательский JS между модулями

    Вы заметите, что каждый раз, когда вы нажимаете одну из кнопок API + и вставляете метод или событие, ему предшествует уникальный идентификатор API, например.