You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Bootstrap响应式轮播滑块显示4个项目(仿电商轮播)

如何实现Bootstrap 3轮播同时显示4个项目

我看了你写的轮播代码,发现几个关键问题导致没法同时显示4个项目——每个轮播项里只有一个内容模块、CSS的宽度比例是按3项设置的,还有JS克隆元素的数量没跟上。咱们一步步调整,就能实现你想要的电商风格4项轮播啦!

1. 调整HTML结构

首先把每个内容块的列类改成col-xs-3 col-sm-3(因为4个项目平分宽度,每个占1/4,对应Bootstrap的col-*-3),同时去掉多余的col-sm-12,避免宽度冲突:

<div class="container-fluid">
 <div class="row">
 <div class="col-md-12">
 <div class="carousel slide multi-item-carousel" id="theCarousel">
 <div class="carousel-inner">
 <!-- 第一个活跃轮播项 -->
 <div class="item active">
 <div class="col-xs-3 col-sm-3"><a href="#1"><img src="http://placehold.it/300/f44336/000000" class="img-responsive"></a></div>
 </div>
 <div class="item">
 <div class="col-xs-3 col-sm-3"><a href="#1"><img src="http://placehold.it/300/e91e63/000000" class="img-responsive"></a></div>
 </div>
 <div class="item">
 <div class="col-xs-3 col-sm-3"><a href="#1"><img src="http://placehold.it/300/9c27b0/000000" class="img-responsive"></a></div>
 </div>
 <div class="item">
 <div class="col-xs-3 col-sm-3"><a href="#1"><img src="http://placehold.it/300/673ab7/000000" class="img-responsive"></a></div>
 </div>
 <div class="item">
 <div class="col-xs-3 col-sm-3"><a href="#1"><img src="http://placehold.it/300/4caf50/000000" class="img-responsive"></a></div>
 </div>
 <div class="item">
 <div class="col-xs-3 col-sm-3"><a href="#1"><img src="http://placehold.it/300/8bc34a/000000" class="img-responsive"></a></div>
 </div>
 </div>
 <a class="left carousel-control" href="#theCarousel" data-slide="prev"><i class="glyphicon glyphicon-chevron-left"></i></a>
 <a class="right carousel-control" href="#theCarousel" data-slide="next"><i class="glyphicon glyphicon-chevron-right"></i></a>
 </div>
 </div>
 </div>
 </div>

2. 修改CSS样式

原来的CSS是按3个项目设置的33%宽度,现在要改成25%,同时修正轮播项的过渡位置,还要修复拼写错误(原来的.carouse-control少了个l,改成.carousel-control):

.multi-item-carousel {
  .carousel-inner {
    > .item { transition: 500ms ease-in-out left; }
    .active {
      &.left { left: -25%; }
      &.right { left: 25%; }
    }
    .next { left: 25%; }
    .prev { left: -25%; }
    @media all and (transform-3d), (-webkit-transform-3d) {
      > .item {
        transition: 500ms ease-in-out left;
        transition: 500ms ease-in-out all;
        backface-visibility: visible;
        transform: none !important;
      }
    }
  }
  .carousel-control {
    &.left, &.right { background-image: none; }
  }
}
// 非相关样式保持不变
body { background: #333; color: #ddd; }
h1 { color: white; font-size: 2.25em; text-align: center; margin-top: 1em; margin-bottom: 2em; text-shadow: 0px 2px 0px rgba(0, 0, 0, 1); }

3. 调整JS克隆逻辑

原来的JS只克隆了2个元素,现在需要克隆3个,这样每个.item里就会有4个内容块(自身1个+克隆3个),同时处理轮播项到末尾的边界情况:

// 初始化Bootstrap轮播
$('.multi-item-carousel').carousel({ interval: 3000 });

$('.multi-item-carousel .item').each(function(){
  var $currentItem = $(this);
  
  // 克隆第一个下一项
  var nextItem = $currentItem.next();
  if (!nextItem.length) {
    nextItem = $currentItem.siblings(':first');
  }
  nextItem.children(':first-child').clone().appendTo($currentItem);
  
  // 克隆第二个下一项
  var nextNextItem = nextItem.next();
  if (!nextNextItem.length) {
    nextNextItem = $currentItem.siblings(':first');
  }
  nextNextItem.children(':first-child').clone().appendTo($currentItem);
  
  // 克隆第三个下一项(凑够4个项目)
  var nextNextNextItem = nextNextItem.next();
  if (!nextNextNextItem.length) {
    nextNextNextItem = $currentItem.siblings(':first');
  }
  nextNextNextItem.children(':first-child').clone().appendTo($currentItem);
});

这样修改后,每个轮播项里就会包含4个内容模块,CSS的25%宽度让每个模块刚好占满1/4的空间,轮播切换时会整体移动25%的宽度,完美实现同时显示4个项目的响应式轮播效果。

内容的提问来源于stack exchange,提问作者pri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:56:08