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

标签 javascript css bootstrap-5

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

<link href="https://cdn.jsdelivr.net/npm/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bcded3d3c8cfc8ceddccfc89928c928c91ded9c8dd8d" rel="noreferrer noopener nofollow">[email protected]</a>/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/npm/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b2d0ddddc6c1c6c0d3c2f2879c829c829fd0d7c6d383" rel="noreferrer noopener nofollow">[email protected]</a>/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 Hook 第一个轮播的 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

关于javascript - Bootstrap 5 多个轮播的轮播指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65516047/

相关文章:

javascript - jQuery - 在选择列表之间交换值

javascript - 这是在构造函数之外未定义的

html - 如何缩短输入字段的宽度 - Bootstrap v5 或 CSS

html - 在其中自定义 bootstrap 5 按钮颜色和属性

javascript - 如何在 JavaScript 中进行不区分大小写的比较?

javascript - 单击链接后无法渲染 react 组件

html - 如何让这些 div 并排显示?

html - CSS/Angular : Expanding a div

JavaFX - 这个包含上下文菜单的奇怪容器是什么

html - 无法在 HTML 中使用 Bootstrap 自上而下居中