如何在 Bootstrap 中制作超过 3 张图像的轮播?

Posted

技术标签:

【中文标题】如何在 Bootstrap 中制作超过 3 张图像的轮播?【英文标题】:How to make a Carousel with more than 3 images in Bootstrap? 【发布时间】:2020-05-29 15:04:37 【问题描述】:

我正在尝试在 Bootstrap 中向我的轮播添加更多图像。我最初只是将这个(如下)添加到 class="carousel-indicators" 的有序列表中

      <li data-target="#carouselExampleCaptions" data-slide-to="3"></li>

还有 div class="carousel-inner" 标签内的新幻灯片(下图)以及其他三张初始幻灯片。

     <div class="carousel-inner mx-auto">
        <div class="carousel-item">
          <img src="pic.jpg" class="d-block w-100" >
          <div class="carousel-caption d-none d-md-block">
          </div>
       </div>
    </div>

当我运行网站时,滚动浏览轮播,然后到达最后一张图片,它会中断,我无法返回任何以前的图片或继续前进。

我尝试了另一个题为“Bootstrap 4 Multi Carousel show 4 images instead of 3”的问题中列出的代码,这完全破坏了轮播。四张图像中的三张同时出现在屏幕上的一列中,其中一张包含轮播控件。当您按下任何控件时,旋转木马就会消失。

【问题讨论】:

【参考方案1】:

这是一个 5 张图片的滑块,希望对你有用。

<!DOCTYPE html>
<html lang="en">

<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
  <style>
    /* Make the image fully responsive */
    
    .carousel-inner img 
      width: 100%;
      height: 100%;
    
  </style>
</head>

<body>

  <div id="demo" class="carousel slide" data-ride="carousel">
    <ul class="carousel-indicators">
      <li data-target="#demo" data-slide-to="0" class="active"></li>
      <li data-target="#demo" data-slide-to="1"></li>
      <li data-target="#demo" data-slide-to="2"></li>
            <li data-target="#demo" data-slide-to="3"></li>
                  <li data-target="#demo" data-slide-to="4"></li>

    </ul>
    <div class="carousel-inner">
      <div class="carousel-item active">
        <img src="https://images.unsplash.com/photo-1580238047299-558e582427bf?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=420&ixid=eyJhcHBfaWQiOjF9&ixlib=rb-1.2.1&q=80&w=680"   >
        <div class="carousel-caption">
          <h3>Slide One</h3>
          <p>Description slide one</p>
        </div>
      </div>
      <div class="carousel-item">
        <img src="https://images.unsplash.com/photo-1572130456602-fed3019a174e?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=420&ixid=eyJhcHBfaWQiOjF9&ixlib=rb-1.2.1&q=80&w=680"   >
        <div class="carousel-caption">
          <h3>Slide Two</h3>
          <p>Description slide two</p>
        </div>
      </div>
      <div class="carousel-item">
        <img src="https://images.unsplash.com/photo-1550828553-bb30dc55dc25?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=420&ixid=eyJhcHBfaWQiOjF9&ixlib=rb-1.2.1&q=80&w=680"   >
        <div class="carousel-caption">
          <h3>Slide Three</h3>
          <p>Description slide three</p>
        </div>
      </div>
            <div class="carousel-item">
        <img src="https://images.unsplash.com/photo-1504406438164-c0e042535100?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=420&ixid=eyJhcHBfaWQiOjF9&ixlib=rb-1.2.1&q=80&w=680"   >
        <div class="carousel-caption">
          <h3>Slide Four</h3>
          <p>Description slide Four</p>
        </div>
      </div>
                  <div class="carousel-item">
        <img src="https://images.unsplash.com/photo-1571407509209-73d3e4a45892?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=420&ixid=eyJhcHBfaWQiOjF9&ixlib=rb-1.2.1&q=80&w=680"   >
        <div class="carousel-caption">
          <h3>Slide Five</h3>
          <p>Description slide Five</p>
        </div>
      </div>
    </div>
    <a class="carousel-control-prev" href="#demo" data-slide="prev">
      <span class="carousel-control-prev-icon"></span>
    </a>
    <a class="carousel-control-next" href="#demo" data-slide="next">
      <span class="carousel-control-next-icon"></span>
    </a>
  </div>

</body>

</html>

【讨论】:

【参考方案2】:

这里是一个例子。它来自 Bootstrap 的类。

<div id="carouselExampleSlidesOnly" class="carousel slide" data-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img class="d-block w-100" src="..." >
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src="..." >
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src="..." >
    </div>
  </div>
</div>

【讨论】:

您提到的代码与问题无关。是的,它是关于 Carousel,但问题是关于添加超过 3 个图像,而您的代码只添加 3 个图像。【参考方案3】:

下面的代码显示了一个带有 5 张图片的轮播。

<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
        <ol class="carousel-indicators">
          <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
          <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
          <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
          <li data-target="#carouselExampleIndicators" data-slide-to="3"></li>
          <li data-target="#carouselExampleIndicators" data-slide-to="4"></li>
        </ol>
        <div class="carousel-inner">
          <div class="carousel-item active">
            <img class="d-block w-100" src="1.jpg" >
                <div class="carousel-caption d-none d-md-block">
                    <h5>...</h5>
                    <p>...</p>
                </div>
          </div>
          <div class="carousel-item">
            <img class="d-block w-100" src="2.jpg" >
            <div class="carousel-caption d-none d-md-block">
                <h5>...</h5>
                <p>...</p>
            </div>
          </div>
          <div class="carousel-item">
            <img class="d-block w-100" src="3.jpg" >
            <div class="carousel-caption d-none d-md-block">
                <h5>...</h5>
                <p>...</p>
            </div>
          </div>
          <div class="carousel-item">
            <img class="d-block w-100" src="4.jpg" >
            <div class="carousel-caption d-none d-md-block">
                <h5>...</h5>
                <p>...</p>
            </div>
          </div>
          <div class="carousel-item">
            <img class="d-block w-100" src="5.jpg" >
            <div class="carousel-caption d-none d-md-block">
                <h5>...</h5>
                <p>...</p>
            </div>
          </div>
        </div>
        <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
          <span class="carousel-control-prev-icon" aria-hidden="true"></span>
          <span class="sr-only">Previous</span>
        </a>
        <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
          <span class="carousel-control-next-icon" aria-hidden="true"></span>
          <span class="sr-only">Next</span>
        </a>
      </div>

【讨论】:

这个例子很棒,但如果你包含你正在链接的引导程序版本,它会更有帮助。你还链接了什么脚本。

以上是关于如何在 Bootstrap 中制作超过 3 张图像的轮播?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Bootstrap 4 轮播中制作全角背景图像?

如何让 React.js 和 Bootstrap 4 模态轮播始终在打开时显示第一张图像

尝试使用 ImageMagick 制作 9 张图像的 3 x 3 蒙太奇,但命令行命令出错

如果我有超过三张卡,我如何在 reactstrap 或 bootstrap 中为第四张卡创建一个新行?

Bootstrap 响应式页脚图像对齐

如何通过相机或图库动态添加图像?