首页 > 解决方案 > 引导轮播 - 尝试一次使用 6 列,但只显示 3 列

问题描述

我从这个Codepen中获得了灵感,但是,我尝试对其进行修改以启用col-md-2Bootstrap 中的类。不幸的是,仍然只显示 3 列。

我有一个小小的想法,为什么会这样。我的理论是卡片左侧和右侧的active卡片获取类添加到它们以显示,但是,我不明白这些是如何添加的 - 我将假设它内置在默认的 Bootstrap Carousel 功能中。

无论如何,如果有人知道如何获得每行 6 列,那就太好了。这是我的代码:

$(document).ready(function() {
  $("#myCarousel").on("slide.bs.carousel", function(e) {
    var $e = $(e.relatedTarget);
    var idx = $e.index();
    var itemsPerSlide = 6;
    var totalItems = $(".carousel-item").length;

    if (idx >= totalItems - (itemsPerSlide - 1)) {
      var it = itemsPerSlide - (totalItems - idx);
      for (var i = 0; i < it; i++) {
        // append slides to end
        if (e.direction == "left") {
          $(".carousel-item")
            .eq(i)
            .appendTo(".carousel-inner");
        } else {
          $(".carousel-item")
            .eq(0)
            .appendTo($(this).find(".carousel-inner"));
        }
      }
    }
  });
});
.carousel-item {
  position: relative;
  display: none;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  width: 100%;
  transition: -webkit-transform .6s ease;
  transition: transform .6s ease;
  transition: transform .6s ease, -webkit-transform .6s ease;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-perspective: 1000px;
  perspective: 1000px;
}

.card-image {
  position: relative;
}

.image-overlay {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  height: 100%;
  width: 100%;
  opacity: 1;
  transition: .5s ease;
  background: rgba(0, 0, 0, 0.5);
}

.image-overlay .middle {
  transition: .5s ease;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  text-align: center;
}

.card .card-body .middle a {
  text-decoration: none;
  border-bottom: none !important;
}

.card .card-body .middle a:hover {
  text-decoration: none;
  border-bottom: none !important;
}

.card .image-overlay {
  opacity: 1;
}

@media (min-width: 768px) {
  /* show 3 items */
  .carousel-inner .active,
  .carousel-inner .active+.carousel-item,
  .carousel-inner .active+.carousel-item+.carousel-item {
    display: block;
  }
  .carousel-inner .carousel-item.active:not(.carousel-item-right):not(.carousel-item-left),
  .carousel-inner .carousel-item.active:not(.carousel-item-right):not(.carousel-item-left)+.carousel-item,
  .carousel-inner .carousel-item.active:not(.carousel-item-right):not(.carousel-item-left)+.carousel-item+.carousel-item {
    transition: none;
  }
  .carousel-inner .carousel-item-next,
  .carousel-inner .carousel-item-prev {
    position: relative;
    transform: translate3d(0, 0, 0);
  }
  .carousel-inner .active.carousel-item+.carousel-item+.carousel-item+.carousel-item {
    position: absolute;
    top: 0;
    right: -33.3333%;
    z-index: -1;
    display: block;
    visibility: visible;
  }
  /* left or forward direction */
  .active.carousel-item-left+.carousel-item-next.carousel-item-left,
  .carousel-item-next.carousel-item-left+.carousel-item,
  .carousel-item-next.carousel-item-left+.carousel-item+.carousel-item,
  .carousel-item-next.carousel-item-left+.carousel-item+.carousel-item+.carousel-item {
    position: relative;
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }
  /* farthest right hidden item must be abso position for animations */
  .carousel-inner .carousel-item-prev.carousel-item-right {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    display: block;
    visibility: visible;
  }
  /* right or prev direction */
  .active.carousel-item-right+.carousel-item-prev.carousel-item-right,
  .carousel-item-prev.carousel-item-right+.carousel-item,
  .carousel-item-prev.carousel-item-right+.carousel-item+.carousel-item,
  .carousel-item-prev.carousel-item-right+.carousel-item+.carousel-item+.carousel-item {
    position: relative;
    transform: translate3d(100%, 0, 0);
    visibility: visible;
    display: block;
    visibility: visible;
  }
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>


<div class="container-fluid">
  <div id="myCarousel" class="carousel slide" data-ride="carousel">
    <div class="carousel-inner row w-100 mx-auto">
      <li class="carousel-item col-md-2 active">
        <div class="card text-center">
          <img class="card-img-top" loading="lazy" src="https://via.placeholder.com/300.png" alt="Placeholder" />
          <div class="card-body">
            <h5 class="card-title m-0"><a href="/porn-tube-sites/test" class="similar-link stretched-link">test</a></h5>
          </div>
        </div>
      </li>
      <li class="carousel-item col-md-2">
        <div class="card text-center">
          <img class="card-img-top" loading="lazy" src="https://via.placeholder.com/300.png" alt="Placeholder" />
          <div class="card-body">
            <h5 class="card-title m-0"><a href="/porn-tube-sites/test" class="similar-link stretched-link">test</a></h5>
          </div>
        </div>
      </li>
      <li class="carousel-item col-md-2">
        <div class="card text-center">
          <img class="card-img-top" loading="lazy" src="https://via.placeholder.com/300.png" alt="Placeholder" />
          <div class="card-body">
            <h5 class="card-title m-0"><a href="/porn-tube-sites/test" class="similar-link stretched-link">test</a></h5>
          </div>
        </div>
      </li>
      <li class="carousel-item col-md-2">
        <div class="card text-center">
          <img class="card-img-top" loading="lazy" src="https://via.placeholder.com/300.png" alt="Placeholder" />
          <div class="card-body">
            <h5 class="card-title m-0"><a href="/porn-tube-sites/test" class="similar-link stretched-link">test</a></h5>
          </div>
        </div>
      </li>
      <li class="carousel-item col-md-2">
        <div class="card text-center">
          <img class="card-img-top" loading="lazy" src="https://via.placeholder.com/300.png" alt="Placeholder" />
          <div class="card-body">
            <h5 class="card-title m-0"><a href="/porn-tube-sites/test" class="similar-link stretched-link">test</a></h5>
          </div>
        </div>
      </li>
      <li class="carousel-item col-md-2">
        <div class="card text-center">
          <img class="card-img-top" loading="lazy" src="https://via.placeholder.com/300.png" alt="Placeholder" />
          <div class="card-body">
            <h5 class="card-title m-0"><a href="/porn-tube-sites/test" class="similar-link stretched-link">test</a></h5>
          </div>
        </div>
      </li>
      <li class="carousel-item col-md-2">
        <div class="card text-center">
          <img class="card-img-top" loading="lazy" src="https://via.placeholder.com/300.png" alt="Placeholder" />
          <div class="card-body">
            <h5 class="card-title m-0"><a href="/porn-tube-sites/test" class="similar-link stretched-link">test</a></h5>
          </div>
        </div>
      </li>
      <li class="carousel-item col-md-2">
        <div class="card text-center">
          <img class="card-img-top" loading="lazy" src="https://via.placeholder.com/300.png" alt="Placeholder" />
          <div class="card-body">
            <h5 class="card-title m-0"><a href="/porn-tube-sites/test" class="similar-link stretched-link">test</a></h5>
          </div>
        </div>
      </li>
    </div>
    <a class="carousel-control-prev" href="#myCarousel" 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="#myCarousel" role="button" data-slide="next">
      <span class="carousel-control-next-icon" aria-hidden="true"></span>
      <span class="sr-only">Next</span>
    </a>
  </div>
</div>

标签: jquerybootstrap-4

解决方案


我曾经在这样的旋转木马中工作过,并且和我一起工作得很好,我为你定制了它,这样你就可以使用它并一次使用 6 列。这是 GitHub 存储库:

Bootstrap Carousel 多个项目 6 列

我希望它对你有帮助。


推荐阅读