首页 > 解决方案 > 模态中的引导轮播显示不止一张幻灯片

问题描述

我在 Modal 中创建了一个 Bootstrap Carousel。模态显示不止一张幻灯片,但我不知道如何制作它,以便您单击的图像是居中的幻灯片,在任一侧显示上一张和下一张幻灯片。

我的工作代码在这里:https ://codepen.io/IHateSlugs/pen/LYxPxWr

完整代码:使用 Bootstrap 4.4.1 和 Popper 1.16.0

<div class="row" id="gallery" data-toggle="modal" data-target="#exampleModal">
  <div class="col-12 col-sm-6 col-lg-3">
      <div class="ingredient_box" data-target="#carouselExample" data-slide-to="0">
             <div class="flex jc_between al_center pb_20">
                <h4 class="h4">ingredient1</h4>
                   <img src="https://cdn.shopify.com/s/files/1/0552/7204/6775/files/196x148_igredients_196x148.jpg?v=1616165286" />
              </div>
              <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
              <p class="origin">Origin Location</p>
     </div>
  </div>
  <div class="col-12 col-sm-6 col-lg-3">
    <div class="ingredient_box" data-target="#carouselExample" data-slide-to="1">
             <div class="flex jc_between al_center pb_20">
                <h4 class="h4">ingredient2</h4>
                   <img src="https://cdn.shopify.com/s/files/1/0552/7204/6775/files/196x148_igredients_196x148.jpg?v=1616165286" />
              </div>
              <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
              <p class="origin">Origin Location</p>
     </div>
  </div>
  <div class="col-12 col-sm-6 col-lg-3">
    <div class="ingredient_box" data-target="#carouselExample" data-slide-to="2">
             <div class="flex jc_between al_center pb_20">
                <h4 class="h4">ingredient3</h4>
                   <img src="https://cdn.shopify.com/s/files/1/0552/7204/6775/files/196x148_igredients_196x148.jpg?v=1616165286" />
              </div>
              <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
              <p class="origin">Origin Location</p>
     </div>
  </div>
  <div class="col-12 col-sm-6 col-lg-3">
    <div class="ingredient_box" data-target="#carouselExample" data-slide-to="3">
             <div class="flex jc_between al_center pb_20">
                <h4 class="h4">ingredient4</h4>
                   <img src="https://cdn.shopify.com/s/files/1/0552/7204/6775/files/196x148_igredients_196x148.jpg?v=1616165286" />
              </div>
              <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
              <p class="origin">Origin Location</p>
         </div>
      </div>
      <div class="col-12 col-sm-6 col-lg-3">
    <div class="ingredient_box" data-target="#carouselExample" data-slide-to="4">
             <div class="flex jc_between al_center pb_20">
                <h4 class="h4">ingredient5</h4>
                   <img src="https://cdn.shopify.com/s/files/1/0552/7204/6775/files/196x148_igredients_196x148.jpg?v=1616165286" />
              </div>
              <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
              <p class="origin">Origin Location</p>
         </div>
      </div>
      <div class="col-12 col-sm-6 col-lg-3">
    <div class="ingredient_box" data-target="#carouselExample" data-slide-to="5">
             <div class="flex jc_between al_center pb_20">
                <h4 class="h4">ingredient6</h4>
                   <img src="https://cdn.shopify.com/s/files/1/0552/7204/6775/files/196x148_igredients_196x148.jpg?v=1616165286" />
              </div>
              <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
              <p class="origin">Origin Location</p>
         </div>
      </div>
    </div>

<!-- Modal -->
<!-- 
This part is straight out of Bootstrap docs. Just a carousel inside a modal.
-->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <div id="carouselExample" class="carousel slide multi-item-carousel" data-ride="carousel">
          <ol class="carousel-indicators">
            <li data-target="#carouselExample" data-slide-to="0" class="active"></li>
            <li data-target="#carouselExample" data-slide-to="1"></li>
            <li data-target="#carouselExample" data-slide-to="2"></li>
            <li data-target="#carouselExample" data-slide-to="3"></li>
            <li data-target="#carouselExample" data-slide-to="4"></li>
            <li data-target="#carouselExample" data-slide-to="5"></li>
          </ol>
          <div class="carousel-inner">
            <div class="carousel-item active">
              <div class="ingredient_box ingredient_modal">
                 <div class="flex jc_between al_center pb_20">
                    <h4 class="h4">ingredient1</h4>
                       <img src="https://cdn.shopify.com/s/files/1/0552/7204/6775/files/196x148_igredients_196x148.jpg?v=1616165286" />
                  </div>
                  <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
                  <p class="origin">Origin Location</p>
              </div>
            </div>
            <div class="carousel-item">
              <div class="ingredient_box ingredient_modal">
                 <div class="flex jc_between al_center pb_20">
                    <h4 class="h4">ingredient2</h4>
                       <img src="https://cdn.shopify.com/s/files/1/0552/7204/6775/files/196x148_igredients_196x148.jpg?v=1616165286" />
                  </div>
                  <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
                  <p class="origin">Origin Location</p>
              </div>
            </div>
            <div class="carousel-item">
              <div class="ingredient_box ingredient_modal">
                 <div class="flex jc_between al_center pb_20">
                    <h4 class="h4">ingredient3</h4>
                       <img src="https://cdn.shopify.com/s/files/1/0552/7204/6775/files/196x148_igredients_196x148.jpg?v=1616165286" />
                  </div>
                  <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
                  <p class="origin">Origin Location</p>
              </div>
            </div>
            <div class="carousel-item">
              <div class="ingredient_box ingredient_modal">
                 <div class="flex jc_between al_center pb_20">
                    <h4 class="h4">ingredient4</h4>
                       <img src="https://cdn.shopify.com/s/files/1/0552/7204/6775/files/196x148_igredients_196x148.jpg?v=1616165286" />
                  </div>
                  <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
                  <p class="origin">Origin Location</p>
              </div>
            </div>
            <div class="carousel-item">
              <div class="ingredient_box ingredient_modal">
                 <div class="flex jc_between al_center pb_20">
                    <h4 class="h4">ingredient5</h4>
                       <img src="https://cdn.shopify.com/s/files/1/0552/7204/6775/files/196x148_igredients_196x148.jpg?v=1616165286" />
                  </div>
                  <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
                  <p class="origin">Origin Location</p>
              </div>
            </div>
            <div class="carousel-item">
              <div class="ingredient_box ingredient_modal">
                 <div class="flex jc_between al_center pb_20">
                    <h4 class="h4">ingredient6</h4>
                       <img src="https://cdn.shopify.com/s/files/1/0552/7204/6775/files/196x148_igredients_196x148.jpg?v=1616165286" />
                  </div>
                  <p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
                  <p class="origin">Origin Location</p>
              </div>
            </div>
          </div>
          <a class="carousel-control-prev" href="#carouselExample" 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="#carouselExample" role="button" data-slide="next">
            <span class="carousel-control-next-icon" aria-hidden="true"></span>
            <span class="sr-only">Next</span>
          </a>
        </div>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
      </div>
    </div>
  </div>
</div>
.ingredient_box {
    padding: 0 0 30px 20px; margin-bottom:20px;
  background-color: #ABFFFA;
}
p.origin{margin-bottom:0; font-style:italic;}
.product_story_images {align-items:center;justify-content: center;margin-bottom:40px;}

.flex {display:flex;
flex-direction:row;}
.medium-up--one-third {
    width: 33.33333%; }
.grid--uniform .medium-up--one-third:nth-child(3n+1) {
  clear: both;
}
.grid__item {
    float: left;
    padding-left: 30px;
}
.al_center {
    -webkit-align-items: center;
    -ms-align-items: center;
    align-items: center;
}
.jc_between {
    -webkit-justify-content: space-between;
    -ms-justify-content: space-between;
    justify-content: space-between;
}
.modal-dialog {
    max-width: 80%;
    margin: 1.75rem auto;
}
.carousel-inner .carousel-item-right.active,
.carousel-inner .carousel-item-next {
  transform: translateX(33.33%);
}

.carousel-inner .carousel-item-left.active, 
.carousel-inner .carousel-item-prev {
  transform: translateX(-33.33%)
}
  
.carousel-inner .carousel-item-right,
.carousel-inner .carousel-item-left{ 
  transform: translateX(0);
}

.ingredient_modal {
      width: 33%;
    display: inline-block;
}
$('#carouselExample').carousel({
  interval: 90000
})

$('.carousel .carousel-item').each(function(){
    var next = $(this).next();
    if (!next.length) {
    next = $(this).siblings(':first');
    }
    next.children(':first-child').clone().appendTo($(this));
    
    if (next.next().length>0) {
    next.next().children(':first-child').clone().appendTo($(this));
    }
    else {
      $(this).siblings(':first').children(':first-child').clone().appendTo($(this));
    }
});

标签: htmlbootstrap-4modal-dialogcarousel

解决方案


推荐阅读