Как я могу использовать Flickity JS для двух контейнеров с одинаковыми событиями нажатия? - PullRequest
0 голосов
/ 17 января 2020

У меня есть простой div, в котором у меня есть два контейнера с изображениями и текстом:

<div class="wrapper">
    <div class="img-container">
        <div class="slide-img">
            <img src="img/bg1.jpg" alt="">
        </div>
        <div class="slide-img">
            <img src="img/bg1.jpg" alt="">
        </div>
    </div>
    <div class="text-container">
        <div class="slide-text">
            <p>1</p>
        </div>
        <div class="slide-text">
            <p>2</p>
        </div>
    </div>
</div>

И теперь я хочу нацелить контейнеры с помощью Flickity js, поэтому, если я сделаю это:

$('.img-container').flickity({
    cellAlign: 'left',
    contain: true
});
$('.text-container').flickity({
    cellAlign: 'left',
    contain: true
});

Я получу два ползунка, но мне нужен один ползунок с одной парой навигационных стрелок и одной точкой страницы и теми же событиями. Поэтому, когда я нажимаю или перетаскиваю навигацию, оба контейнера должны анимироваться. Что мне делать? Не могли бы вы мне помочь? Заранее спасибо.

1 Ответ

1 голос
/ 17 января 2020

Я использовал опцию asNavFor для запуска ползунка img-container

$('.img-container').flickity();
// 2nd carousel, navigation

$('.text-container').flickity({
  asNavFor: '.img-container',
  contain: true,
  pageDots: false,
  prevNextButtons: false
});
.carousel {
  background: #FAFAFA;
  margin-bottom: 40px;
}

.slide-img {
  width: 100%;
  height: 200px;
  margin-right: 10px;
  background: tomato;
  border-radius: 5px;
}

.text-container .slide-text {
  height: 80px;
  width: 100px;
  background: tomato;
  text-align:center;
  font-size:20px;
}

.slide-text.is-nav-selected {
  background: #ED2;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/flickity/2.2.1/flickity.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/flickity/2.2.1/flickity.pkgd.min.js"></script>

<div class="wrapper">
  <div class="img-container carousel">
    <div class="slide-img">
      <img src="img/bg1.jpg" alt="">
    </div>
    <div class="slide-img">
      <img src="img/bg1.jpg" alt="">
    </div>
  </div>
  <div class="text-container carousel">
    <div class="slide-text">
      <p>1</p>
    </div>
    <div class="slide-text">
      <p>2</p>
    </div>
  </div>
</div>
...