Bootstrap 5 多个轮播的轮播指示器

Bootstrap 5 carousel indicator for multiple carousels

我正在尝试通过 data-bs-target 触发多个轮播滑块。我尝试使用 class 名称而不是 ID,但它只触发一个。

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js"></script>
<div class="row">
<div class="col-6">
<div id="carouselA" class="carousel slide carouselBoth" data-bs-ride="carousel">
  <ol class="carousel-indicators">
    <li data-bs-target=".carouselBoth" data-bs-slide-to="0" class="active"></li>
    <li data-bs-target=".carouselBoth" data-bs-slide-to="1"></li>
    <li data-bs-target=".carouselBoth" data-bs-slide-to="2"></li>
  </ol>
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img src="https://via.placeholder.com/300x150/1" class="d-block w-100" alt="...">
    </div>
    <div class="carousel-item">
      <img src="https://via.placeholder.com/300x150/2" class="d-block w-100" alt="...">
    </div>
    <div class="carousel-item">
      <img src="https://via.placeholder.com/300x150/3" class="d-block w-100" alt="...">
    </div>
  </div>
</div>
</div>

<div class="col-6">

<div id="carouselB" class="carousel slide carouselBoth" data-bs-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img src="https://via.placeholder.com/300x150/1" class="d-block w-100" alt="...">
    </div>
    <div class="carousel-item">
      <img src="https://via.placeholder.com/300x150/2" class="d-block w-100" alt="...">
    </div>
    <div class="carousel-item">
      <img src="https://via.placeholder.com/300x150/3" class="d-block w-100" alt="...">
    </div>
  </div>
</div>
</div>
</div>

我猜 data-bs-target=".carouselBoth" 会起作用,但看起来我错了或者我漏掉了什么

JSFIDDLE

根据 Bootstrap 5 beta 文档...

"Control and indicator elements must have a data-bs-target attribute (or href for links) that matches the id of the .carousel element."

所以我认为只有Collapse组件支持multiple targets。但是,您可以使用 javascript...

连接到第一个轮播的 slide.bs.carousel 事件以触发第二个轮播上的幻灯片
var carouselA = document.getElementById('carouselA')
var carouselB = document.getElementById('carouselB')

carouselA.addEventListener('slide.bs.carousel', function(e) {
    var bsCarouselB = bootstrap.Carousel.getInstance(carouselB)
    bsCarouselB.to(e.to)
})

Demo