Как стать автором
Поиск
Написать публикацию
Обновить

Как сделать слайдер на JS?

Всем привет!

В этой статье ты узнаешь как сделать сенсорный слайдер на HTML, CSS и JavaScript. Помогать в этом нам будет библиотека Swiperjs. Я не считаю себя мастером в JS, всегда есть чему учиться, поэтому если вы знаете как написать какие-то фрагменты кода проще, эффективнее и лучше, то обязательно напишите в комменты.

Первым делом создаем файл index.html и открываем его на редактирование. С начало создаем основную структуру страницы:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Slider</title>
</head>
<body>

</body>
</html>

Далее нужно подключить SwiperJS, для этого переходим в документацию библиотеки - https://swiperjs.com/get-started Чуть ниже заголовка "Use Swiper from CDN" копируем подключения и вставляем между тегами head:

<head>
  <link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css"
/>
<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
</head>

Затем прописываем div с классом "swiper mySwiper". В нем создаем div c классом "swiper-wrapper" и далее в этом блоке прописываем div c классом "swiper-slide", создадим их 5 штук - Это будут наши слайды, в них я помещу для примера чисто картинки.
Потом в диве с классом "swiper mySwiper" создадим еще один div с классом "swiper-pagination" - это будет пагинация.

Теперь пропишем стрелки, для этого создаем 2 дива. Первая стрелка будет с классом "swiper-button-next", а вторая с "swiper-button-prev". В итоге весь html-код должен выглядеть таким образом:

<div class="swiper mySwiper">
    <div class="swiper-wrapper">
      <div class="swiper-slide"><img src="https://miro.medium.com/max/1400/1*BR2RiTRoYor9xSrzEgxLWQ.jpeg"></div>
      <div class="swiper-slide"><img src="https://fireseo.ru/wp-content/uploads/2022/06/programming.jpeg"></div>
      <div class="swiper-slide"><img src="https://img.freepik.com/free-vector/neon-lights-background-theme_52683-44625.jpg?w=2000"></div>
      <div class="swiper-slide"><img src="https://png.pngtree.com/thumb_back/fh260/background/20200714/pngtree-modern-double-color-futuristic-neon-background-image_351866.jpg
        "></div>
      <div class="swiper-slide"><img src="https://img.freepik.com/premium-vector/minimalist-shape-background_112769-210.jpg"></div>
    </div>
    <div class="swiper-pagination"></div>
  </div>
  <div class="swiper-button-next"></div>
  <div class="swiper-button-prev"></div>

Дальше накинем немного CSS стилей.
Тегам html и body зададим height: 100% и font-size: 15px;
К классу "swiper" пропишем width: 1000px; и height: 100%;
К слайдам зададим следующие стили: text-align: center; font-size: 18px; background-color: #fff; display: flex; justify-content: center; align-items: center;
Еще пропишем к swiper-slide img - width: 58%; и object-fit: cover; - Это размер картинок.

Также немного изменим у стрелок отталкивание от краев:
.swiper-button-next, .swiper-rtl .swiper-button-prev{
right: 140px !important;
left: auto;
}
.swiper-button-prev, .swiper-rtl .swiper-button-next{
left: 140px !important;
right: auto;
}
В итоге у вас должен получится вот такой css-код:

<style>
    html,
    body{
      height: 100%;
      font-size: 15px;
    }
    .swiper{
      width: 1000px;
      height: 100%;
    }
    .swiper-slide{
      text-align: center;
      font-size: 18px;
      background-color: aliceblue;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    .swiper-slide img{
      width: 58%;
      object-fit: cover;
    }
    .swiper-button-next, .swiper-rtl .swiper-button-prev{
      right: 140px !important; 
      left: auto;
    }
    .swiper-button-prev, .swiper-rtl .swiper-button-next{
      left: 140px !important; 
      right: auto;
    }

  </style>

Переходим к JavaScript.

Тут код довольно простой:

<script>
    var swiper = new Swiper(".mySwiper", {
      spaceBetween: 30,
      navigation: {
        nextEl: ".swiper-button-next",
        prevEl: ".swiper-button-prev",
      },
      pagination: {
        el: ".swiper-pagination",
      },
      mousewheel: true,
      keyboard: true,
    });
  </script>

То как работает слайдер вы можете посмотреть в моем ролике:

Весь иcходный код вы можете найти в моем GitHub.

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

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.