使用Bootstrap轮播仅在每张幻灯片上显示8个项目

时间:2017-04-12 19:10:03

标签: jquery arrays twitter-bootstrap twitter-bootstrap-3 carousel

我正在生成一组不确定的数字对象(因为数组是动态创建的,并且基于管理界面和他们输入了多少个对象。)我试图使用Bootstrap轮播仅显示8个对象在每张幻灯片上,如果有超过8张,将附加内容移动到下一张幻灯片直到16,然后下一张幻灯片上移到24,依此类推。如果用户向前或向后点击(我不会自动浏览幻灯片),我也希望它能够运行。

以下是我正在运行的代码,包括变量 idx ,它是数组中的顺序对象编号(基于零。)

HTML

            <div id="articles" class="articles"></div>

JavaScript的:

    $(document).ready(function(){
        <% JSONObject jsonObject=(JSONObject)session.getAttribute("responseDetailsJson"); %>
        var tileSetObjects = <%=jsonObject%>
            $.each(tileSetObjects.HelpJSONArray, function(idx, obj){
                $('#articles').append('<article class="pdf-guide" id="article-'+idx+'"><a href="'+obj.LINKVALUE+'" class="link-wrapper"><div class="title-link">'+obj.TITLE+'</div><p class="description">'+obj.LONGCONTENT+'</p></a></article>');
            });
        });

感谢您的帮助!

4 个答案:

答案 0 :(得分:4)

你说你正在使用Bootstrap,但你的标记根本没有反映出来。

我将从Bootstrap JavaScript Documentation开始,其中包括有关Carousel的详细部分。

如上所述,将interval选项设置为“false”以禁用自动滚动,这将实现您想要的行为。如文档中所述:

  

自动循环项目之间的延迟时间。如果为false,轮播将不会自动循环。

关于8个,你的JavaScript看起来应该可以工作,虽然需要修改标记注入部分以匹配Bootstrap轮播标记(见上面的链接)。

答案 1 :(得分:0)

我不确定Bootstrap轮播是否可行。但是有滑块可以满足您的要求。 &#34;油滑&#34; slider是一个符合您要求的插件,它也是响应式的。

您可以在此处找到演示:http://kenwheeler.github.io/slick/并搜索&#34;多项&#34;。

答案 2 :(得分:0)

我建议使用 Flickity 一个JavaScript滑块库,由Metafizzy成名的David DeSandro构建。为了让您制作或创建响应式,触摸友好的旋转木马,您可以轻松定制。它包含不同的功能,如wraparround,freescroll,groupcells,autoplay,lazyload,parallax等等。

为了按照您想要的方式对单元格进行分组,您需要将每张幻灯片中的8个 data-flickity='{ "groupCells": 8 } 设置为您想要的数字。然后根据您想要的数字除以100%,例如100%将其除以8,然后将其设置为您的轮播宽度 .carousel-cell { width: 12.5%;} 我希望我能帮助您并添加额外的库或插件你的网站开发。祝你今天愉快。 :)

  <!DOCTYPE html>
<html>
<head>
    <title></title>
    <link rel="stylesheet" href="https://unpkg.com/flickity@2/dist/flickity.min.css">
    <script src="https://unpkg.com/flickity@2/dist/flickity.pkgd.min.js"></script>
</head>
<body>
    <h1>Flickity - groupCells</h1>

    <!-- Flickity HTML init -->
    <div class="carousel" data-flickity='{ "groupCells": 8, "autoPlay": true }' style="">
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <!--Add More Here.....-->
    </div>

</body>
</html>
<style type="text/css">
    /* external css: flickity.css */

* { box-sizing: border-box; }

body { font-family: sans-serif; }

.carousel {
  background: #EEE;
}

.carousel-cell {
  width: 12.5%;
  height: 200px;
  margin-right: 10px;
  background: #8C8;
  border-radius: 5px;
  counter-increment: carousel-cell;
}

.carousel-cell.is-selected {
  background: #ED2;
}

/* cell number */
.carousel-cell:before {
  display: block;
  text-align: center;
  content: counter(carousel-cell);
  line-height: 200px;
  font-size: 80px;
  color: white;
}

</style>

答案 3 :(得分:-1)

对象的数量取决于您分配给BootStrap Carousel的宽度,并取决于每张幻灯片的宽度。

enter code here http://jsfiddle.net/asimshahiddIT/f1a1zbh4/1/