Как я могу переключаться между двумя различными экземплярами Swiper, сохраняя плавные переходы страниц? - PullRequest
0 голосов
/ 16 марта 2020

В настоящее время я использую Swiper 4.5.0 для плавной навигации между слайдами в веб-приложении. Слайд может иметь ссылку HTML, которая указывает на указанный c слайд в другом экземпляре Swiper. Как я могу переключаться между двумя экземплярами Swiper, сохраняя плавные переходы страниц? У кого-нибудь есть идеи? Примечание. В следующем примере вы можете переключаться между двумя различными экземплярами Swiper, сохраняя плавные переходы, если вы go переходите к любому слайду, отличному от 0 (начальный слайд)

1. html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Swiper demo</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
  <link rel="stylesheet" href="https://unpkg.com/swiper/css/swiper.min.css">
  <style>
    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: 120px;
      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;
    }
  </style>
</head>
<body>

  <div class="swiper-container">
    <div class="swiper-wrapper">
      <div class="swiper-slide">Slide 1</div>
      <div class="swiper-slide">Slide 2&nbsp;<a href="2.html#0">Swiper 2</a></div>
      <div class="swiper-slide">Slide 3</div>
      <div class="swiper-slide">Slide 4</div>
    </div>
    <div class="swiper-button-next"></div>
    <div class="swiper-button-prev"></div>
  </div>

  <script src="https://unpkg.com/swiper/js/swiper.min.js"></script>

  <script>
    var swiper = new Swiper('.swiper-container', {
      speed: 1100,
      navigation: {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev',
      },
    });

    var hash=document.location.hash.split('#')[1];

    if(hash) {
        swiper.slideTo(hash);
    }
  </script>
</body>
</html>

2. html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Swiper demo</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
  <link rel="stylesheet" href="https://unpkg.com/swiper/css/swiper.min.css">
  <style>
    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: 120px;
      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;
    }
  </style>
</head>
<body>

  <div class="swiper-container">
    <div class="swiper-wrapper">
      <div class="swiper-slide">Slide 1</div>
      <div class="swiper-slide">Slide 2&nbsp;<a href="1.html#0">Swiper 1</a></div>
      <div class="swiper-slide">Slide 3</div>
      <div class="swiper-slide">Slide 4</div>
    </div>
    <div class="swiper-button-next"></div>
    <div class="swiper-button-prev"></div>
  </div>

  <script src="https://unpkg.com/swiper/js/swiper.min.js"></script>

  <script>
    var swiper = new Swiper('.swiper-container', {
      speed: 1100,
      navigation: {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev',
      },
    });

    var hash=document.location.hash.split('#')[1];

    if(hash) {
        swiper.slideTo(hash);
    }
  </script>
</body>
</html>
...