Swiper JS: пользовательская скорость / задержка для каждого слайда? - PullRequest
0 голосов
/ 27 февраля 2020
  • Версия Swiper: 5.3.

Я хотел бы знать, есть ли возможность установить индивидуальную продолжительность / задержку слайда в Swiper JS из коробка. Я искал в документах проблемы с github, но не смог найти ничего связанного.

Если его нет в наличии из коробки, кто-нибудь может показать, как этого добиться, взломав ядро ​​или пользовательский код.

спасибо.

1 Ответ

1 голос
/ 29 февраля 2020

Вы найдете ответ ей (под Swiper API): https://swiperjs.com/api/#autoplay

Задержка между переходами (в мс). Если этот параметр не указан, автовоспроизведение будет отключено

Если вам нужно указать другую задержку для определенных слайдов c, вы можете сделать это с помощью атрибута data-swiper-autoplay (в мс) на слайде:

<!-- hold this slide for 2 seconds -->
<div class="swiper-slide" data-swiper-autoplay="2000">

Пример:

html, body {
      position: relative;
      height: 100%;
    }
    body {
      background: #eee;
      font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
      font-size: 14px;
      color:#000;
      margin: 0;
      padding: 0;
    }
    .swiper-container {
      width: 100%;
      height: 100%;
    }
    .swiper-slide {
      text-align: center;
      font-size: 18px;
      background: #fff;

      /* Center slide text vertically */
      display: -webkit-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      -webkit-justify-content: center;
      justify-content: center;
      -webkit-box-align: center;
      -ms-flex-align: center;
      -webkit-align-items: center;
      align-items: center;
    }
<!-- Link Swiper's CSS -->
<link rel="stylesheet" href="https://unpkg.com/swiper/css/swiper.min.css">
</head>

<body>
  <!-- Swiper -->
  <div class="swiper-container">
    <div class="swiper-wrapper">
      <div class="swiper-slide" data-swiper-autoplay="3000">3 seconds</div>
      <div class="swiper-slide" data-swiper-autoplay="4000">4 seconds</div>
      <div class="swiper-slide" data-swiper-autoplay="5000">5 seconds</div>
    </div>
    <!-- Add Arrows -->
    <div class="swiper-button-next"></div>
    <div class="swiper-button-prev"></div>
  </div>

  <!-- Swiper JS -->
  <script src="https://unpkg.com/swiper/js/swiper.min.js"></script>

  <!-- Initialize Swiper -->
  <script>
    var swiper = new Swiper('.swiper-container', {
      initialSlide: 1,
      slidesPerView: 1,
      spaceBetween: 20,
      autoplay: {
        delay: 2000,
      },
      centeredSlides: true,
      navigation: {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev',
      },
    });
  </script>
...