Как сделать простой слайдер на 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-уязвимости и как их избежать
Разбираемся в популярном типе атак в вебе.
JavaScript- 7 апреля 2023
Операторы spread и rest в React
Объясняем разницу между тремя точками.
JavaScript- 31 марта 2023
Как создавать всплывающие подсказки
❮ Назад Далее ❯
Узнайте, как создавать всплывающие подсказки с помощью CSS.
Наведите курсор на текст ниже:
Верх Текст всплывающей подсказки
Справа Текст всплывающей подсказки
Внизу Текст всплывающей подсказки
Слева Текст всплывающей подсказки
Попробуйте сами »
Шаг 1) Добавьте HTML:
Пример
Подсказка текст
Шаг 2) Добавьте CSS:
Пример
/* Контейнер всплывающей подсказки */.tooltip {
position: родственник;
отображение: встроенный блок;
border-bottom: 1 пиксель с черными точками; /* Если вам нужны точки под наводимым text */
}
/* Текст всплывающей подсказки */
.tooltip .tooltiptext
{
видимость: скрыто;
ширина:
120 пикселей;
background-color: #555;
цвет: #fff;
выравнивание текста: по центру;
отступ: 5 пикселей 0;
/* Позиция текста всплывающей подсказки */
position: absolute;
z-индекс: 1;
внизу: 125 %;
осталось:
50%;
левое поле: -60 пикселей;
/*
Исчезновение всплывающей подсказки */
opacity: 0;
переход: непрозрачность 0,3 с;
}
/* Стрелка всплывающей подсказки */
. tooltip .tooltiptext::after
{
содержимое: «»;
позиция:
абсолютный;
сверху: 100 %;
осталось: 50%;
левое поле: -5 пикселей;
ширина границы: 5 пикселей;
стиль границы: сплошной;
border-color: #555 прозрачный
прозрачный прозрачный;
}
/* Показать текст всплывающей подсказки, когда
вы наводите указатель мыши на контейнер всплывающей подсказки */
.tooltip:hover .tooltiptext {
видимость: видимая;
} Попробуйте сами »
Совет: Перейдите к нашему руководству по подсказкам CSS, чтобы узнать больше о подсказки.
Совет: Чтобы создать интерактивные всплывающие подсказки, перейдите к нашему руководству по созданию всплывающих окон
Совет: Модальные окна также похожи на всплывающие подсказки. Перейдите к нашему учебному пособию по созданию модальных окон, чтобы узнать о модальные.
❮ Предыдущий Далее ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебник по HTMLУчебник по CSS
Учебник по JavaScript
Учебник How To
Учебник по SQL
Учебник по Python
Учебник по W3. CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery
9000 3
Лучшие ссылки
HTML ReferenceJavaScript Reference
SQL Reference
Python Reference
W3.CSS Reference
Bootstrap Reference
PHP Reference
HTML Colors
Java Reference
Angular Reference
jQuery Reference
900 21 Лучший пример Примеры HTML
Примеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
FORUM | О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, куки-файлы и политика конфиденциальности. Copyright 1999-2023 Refsnes Data. Все права защищены.
W3Schools работает на основе W3.CSS.
Как создать слайдер с помощью HTML и CSS?
Обзор
Ползунки представляют собой набор фреймов, каждый из которых можно перемещать соответственно. Фреймы в слайдерах могут быть изображениями, видео или даже элементами HTML (как в случае отзывов или отзывов). Слайдеры присутствуют на нескольких современных веб-сайтах. Слайдеры используются разработчиками, когда им нужно передать информацию, связанную с веб-сайтом, но они не хотят, чтобы она занимала много места.
Например, предположим, что разработчик разрабатывает веб-сайт продукта, затем он может захотеть продемонстрировать свои отзывы или отзывы пользователям, чтобы они могли доверять им и покупать их продукт. Разработчик может создать слайдер, с помощью которого пользователи смогут легко перемещаться по каждому обзору и читать его. То же самое можно сделать и с изображениями продукта, где разработчик может создать слайдер изображений продукта, чтобы пользователь мог видеть продукт на 360 градусов.
Предварительные условия
Мы узнаем, как создать базовый слайдер изображений CSS с помощью HTML, CSS и Javascript. Чтобы полностью понять, что происходит и что мы делаем, есть определенные понятия, которые вам следует знать заранее. Давайте посмотрим на них.
- HTML: Вы должны иметь базовые знания HTML, такие как элементы и теги. Мы будем использовать различные теги и элементы для создания слайдера, поэтому вы должны знать, какова роль каждого тега или элемента в нашем слайдере.
- CSS: мы будем широко использовать CSS для создания слайдера. Вы должны знать о нескольких промежуточных концепциях CSS, таких как наложение, z-индекс, положение и анимация. Все это потребуется при создании слайдера.
- Javascript: вы должны знать основы JavaScript, такие как объявление переменных, использование цикла for и манипулирование DOM. Они будут использоваться для управления ползунком и создания эффекта.
Как только вы познакомитесь со всеми этими понятиями, давайте создадим ползунок. Мы будем шаг за шагом изучать каждую концепцию и объяснять, почему мы делаем то, что делаем.
Шаг 1: Создайте базовый макет слайдера изображений с помощью кода HTML
Давайте создадим базовый скелет нашего слайдера. Слайдеры — это набор фреймов, как мы сказали выше. Мы будем создавать слайдер изображения CSS.
Во-первых, мы создадим родительский элемент div, который будет содержать изображения слайдера и функции. Мы также добавим определенные стили, такие как изменение цвета фона и настройка высоты и ширины родительского элемента div.
Код
Как только это будет сделано, давайте перейдем к следующей части.
Шаг 2. Добавьте кнопки «Назад» и «Далее»
Ползунки имеют две кнопки «Назад» и «Далее». Они используются для перемещения по кадрам ползунков. Мы добавим основные кнопки в наш родительский div. Эти кнопки помогут пользователю перемещаться по изображениям карусели. Для простоты мы будем использовать < и > в качестве текста кнопки, который будет отображать предыдущее и следующее соответственно.
Помимо добавления основных HTML-кнопок, мы также немного стилизуем их, чтобы они были выровнены по вертикали относительно центра div. Это сделано для того, чтобы прокрутка слайдера стала проще. Мы будем использовать относительное позиционирование для вертикального выравнивания кнопок.
Код
Вывод
Шаг 3: Добавьте необходимые изображения и текст в слайдер
После того, как мы добавили кнопки, пришло время добавить изображения. Мы будем использовать изображения цветов для создания слайдера изображений CSS. Изображения будут накладываться друг на друга с помощью положения и z-индекса. Поскольку нам нужно, чтобы было видно только одно изображение, мы будем использовать основной класс и настроим его отображение на видимое. Отображение остальных изображений будет скрыто, чтобы пользователь не мог их увидеть.
Ползунок также будет иметь текст, который будет отображать изображение, к которому в данный момент обращается пользователь. Это поможет пользователю получить представление о том, сколько изображений присутствует в карусели и в каком порядке.
Код
Вывод
Шаг 4: Активируйте две кнопки с помощью JavaScript Код
Мы создали наш класс слайдера и добавили в него все изображения. Теперь нам нужно активировать предыдущую и следующую кнопки. Мы будем использовать JavaScript.
Во-первых, нам нужно добавить прослушиватель событий к этим кнопкам. Каждый раз, когда пользователь нажимает на предыдущую или следующую кнопку, должно выполняться действие, соответствующее этой кнопке. Итак, как мы собираемся это сделать?
Мы использовали основной класс, чтобы указать, какое изображение должно быть видно пользователю. Нам нужно контролировать, какое изображение будет иметь этот класс. Все остальные изображения будут скрыты и только изображение с основным классом будет видно пользователю. Для этого мы будем использовать манипулирование DOM. Манипуляции с DOM помогут нам удалить основной класс из существующего изображения и добавить его в новое изображение.
Теперь, чтобы определить, какое изображение должно иметь основной класс, мы будем использовать прослушиватели событий кнопок «предыдущий» и «следующий». Во-первых, нам нужно получить все изображения, присутствующие в слайдере. Мы видим, что у родительского слайдера-карусели есть div с изображениями. Мы можем получить это, используя селектор запросов в DOM. Теперь, когда у нас есть все изображения div, нам нужно выбрать правильный и добавить к нему основной класс. Остальные не будут иметь основного класса и, следовательно, будут невидимы для пользователя. Мы можем инициализировать переменную, которая изначально будет указывать на 0. Эта переменная сообщит нам, какое изображение в данный момент видно пользователю. Каждый раз, когда пользователь нажимает «Далее» или «Предыдущее», мы соответственно увеличиваем или уменьшаем значение переменной. Если значение равно 0 и пользователь нажимает на предыдущее, мы изменим значение на (количество изображений div- 1).
Код
Результат
Поздравляем, вы создали слайдер CSS, используя HTML, CSS и Javascript.
Функциональность слайд-шоу
Наш слайдер в настоящее время использует ручное управление для работы. Это означает, что пока пользователь не нажмет на предыдущую или следующую кнопку, изображение не изменится. Однако большинство слайдеров, представленных в сети, так не работают. У них есть эффект слайд-шоу, который позволяет автоматически менять кадры по истечении заданного времени.
Мы можем сделать это и в нашем слайдере. Используя javascript, мы можем использовать функцию setInterval, которая автоматически вызовет следующую функцию через заданное время. Это поможет ползунку работать автоматически и менять ползунок по истечении заданного времени.
Код
Вывод
Точки навигации
Помимо подписи или текста изображения в слайдере, вы также можете использовать точки навигации. Точки навигации работают аналогично тексту или подписи. Они сообщают пользователю, к какому фрейму он в данный момент обращается. Точки навигации используются во многих современных слайдерах, поскольку они удобны и просты в построении. Навигационные точки — это в основном радиокнопки.
Преимущество использования точек навигации заключается в том, что он позволяет пользователю без проблем получить доступ к любому кадру ползунка. В отличие от обычного ползунка, где пользователь должен получать доступ к каждому изображению одно за другим, навигационные точки позволяют пользователю переходить к любому кадру или изображению, щелкая навигационную точку, соответствующую этому изображению.
Основной принцип навигационных точек аналогичен принципу слайдера изображений. Текущее изображение будет иметь соответствующую кнопку навигации, которая будет иметь активный класс. Как только изображение изменится, активный класс будет перенесен или добавлен к текущему изображению и текущей точке навигации.
Код
Вывод
Альтернативный пример
Слайдеры, созданные с использованием Javascript, хороши, если в браузере включен JavaScript. Как только пользователь выключит javascript, слайдер больше не будет работать, поскольку он использует javascript для достижения функциональности слайдера.
Для создания слайдеров не обязательно использовать javascript. Вы даже можете сделать слайдер, используя только HTML и CSS. Все, что вам нужно выяснить, это то, как вы будете работать, когда пользователь нажмет на предыдущую или следующую кнопку. Слайдер, созданный с использованием HTML и CSS, будет использовать меньше памяти браузера и будет работать, даже если в браузере отключен javascript.
Вы можете использовать атрибуты и их свойства, чтобы сделать класс активным. Для кнопки навигации вы можете создать активный класс, который работает при нажатии кнопки или точки. Это работает так же, как и в Javascript, однако вместо использования DOM-манипуляции мы будем использовать функциональные возможности CSS, такие как цель и т. д., чтобы добиться этого.
Мы создали для вас образец слайдера с использованием HTML и CSS. Мы использовали псевдоактивные классы, такие как check, чтобы определить, какую точку навигации пользователь щелкнул последним. Затем соответствующее этому изображение мы показываем пользователю. Для каждого изображения мы установили поля и отступы, так как мы не скрываем изображения.
Код
Выход
Заключение
- Ползунки представляют собой набор фреймов, каждый из которых можно перемещать соответственно.
- Они используются на многих современных веб-сайтах для отображения обзоров или отзывов.
- Чтобы создать слайдер, пользователь должен знать такие понятия, как теги HTML, понятия CSS, такие как наложение, позиционирование и т. д., а также основные принципы JavaScript, такие как переменные и манипулирование DOM.
- Ползунки работают при наличии активного класса с включенным отображением.