【问题标题】:Bootstrap 4 Multi Carousel show 4 images instead of 3Bootstrap 4 Multi Carousel 显示 4 个图像而不是 3 个
【发布时间】:2018-07-15 19:54:36
【问题描述】:

我不知道如何让它显示 4 张图片而不是 3 张。

Based on this Code: Bootstrap 4 Multiple Item Carousel

脚本 JS

$('#recipeCarousel').carousel({
  interval: 10000
})

$('.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));
    }
});

CSS

.carousel-inner .carousel-item-right.active,
.carousel-inner .carousel-item-next {
transform: translateX(25%);
}

.carousel-inner .carousel-item-left.active, 
.carousel-inner .carousel-item-prev {
transform: translateX(-25%)
}

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

我已经改成了这段代码

<div class="carousel-item col-md-3">

而不是这个原始代码

<div class="carousel-item col-md-4">

【问题讨论】:

    标签: carousel bootstrap-4


    【解决方案1】:

    由于 4 列,宽度为 25%(而不是 33%)更改 CSS:

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

    还需要将其他项目克隆到每张幻灯片中。所以JS的变化是:

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

    Bootstrap 4.0.0 Demo - 4 slides, advance 1

    注意:从 alpha 6(提出原始问题时)到 Bootstrap 4.0.0,活动轮播项更改为 flexbox。因此,多轮播中的相邻项目也必须这样做。

    .carousel-inner .carousel-item.active,
    .carousel-inner .carousel-item-next,
    .carousel-inner .carousel-item-prev {
      display: flex;
    }
    

    另见:Bootstrap 4.1.0 (advance all 4 at once)

    【讨论】:

    • 非常感谢!它工作得很好,但照片显示垂直的一条线。我知道如果你在 Codeply 上看到,它不会那样显示。
    • 我刚刚注意到原始版本使用的是 Bootstrap 4 alpha 6,我使用的是 Beta 2 .... 这就是照片图像显示垂直的原因。但是我应该在哪里改变以使水平而不是垂直
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    相关资源
    最近更新 更多