4

我有一个带有多个滑块的页面,这些滑块是用 owl carousel 创建的。我想为每个滑块定义不同数量的可见项目。完美的解决方案是在 HTML 中定义可见项目的数量(作为类或数据)。我刚刚开始使用 jQuery,所以我只设法使用这样的数据属性传递一个值:

<div class="owl-carousel" data-itemsnumber="5">...</div>

然后我将此值应用于 JS 中的变量,并在设置中添加此变量,而不是像这样的项目编号。

var slides = $('.owl-carousel').data('itemsnumber');
$(".owl-carousel").owlCarousel(
{
  items: slides
});

上面的代码无法正常工作,因为第一个滑块的值应用于页面上的所有滑块,我需要每个滑块都有不同数量的项目。我怎样才能做到这一点?

提前致谢

4

3 回答 3

4

owl-carousels 中定义了一些预定义的选项:

  • itemDesktop - 屏幕尺寸 1400px(默认)及以上
  • itemsDesktopSmall- 屏幕尺寸 1100px(默认)及以上
  • itemsTablet- 屏幕尺寸700px(默认)及以上
  • itemsMobile- 屏幕尺寸 500px(默认)及以上

您可以使用上述选项来设置根据屏幕宽度显示的项目数。有些是这样的:

 $(".owl-carousel-product").owlCarousel({
                                items: 3,
                                itemsDesktop: [1400, 3],//1400:screen size, 3: number if items in the slide
                                itemsDesktopSmall: [1100, 2],
                                itemsTablet: [700, 1],
                                itemsMobile: [500, 1]
                              });

此外,如果您将轮播用于图像,则图像可能会在不同的屏幕上重叠。所以你可以在你的 css 文件中使图像的宽度为 100%。

于 2016-04-21T06:33:37.703 回答
2

Owl Carousel 的 css(版本 1——我没有在生产中使用 2)是 .owl-carousel 和 .owl-theme (由脚本添加)。由于我在所有滑块之间共享样式并为其他滑块共享特定样式,因此我使用 .owl-carousel 或仅使用类名,因为.owl-controls其他任何地方的任何其他样式都不共享。如果 .owl-controls对我的所有滑块都是全局的,我可以设置它们的样式。如果您需要为不同的滑块设置不同的控件样式,您可以更具体地使用 CSS,例如.myfunky-slider .owl-controls {}.

我在 html 上使用 .owl-carousel我自己的滑块类:

<div class="mini-multi owl-carousel">
    ...items go here ...
</div>

<div class="content-slider owl-carousel">
    ...items go here ...
</div>

<div class="full-width-slider owl-carousel">
    ...items go here ...
</div>

我使用 jQuery 通过我的类名来调用它们:

$(document).ready(function() {

    $(".content-slider").owlCarousel({
        ...OPTIONS...
     });


    $(".full-width-slider").owlCarousel({
        ...OPTIONS THAT are different ...
    });

    $(".mini-multi").owlCarousel({
        ...OPTIONS that are different ...

        items: 6,
        itemsDesktop: [1400, 6],
        itemsDesktopSmall: [1100, 4],
        itemsTablet: [700, 3],
        itemsMobile: [500, 2]
    });

});

我使用基于共享或特定类名的共享和特定样式对它们进行样式设置:

/* ---- base shared styles ---- */
.owl-carousel {
    ...styles...
}
.owl-pagination .owl-page span {
    ...styles...
}
.owl-pagination {
    ...styles...
}
.owl-page {
    ...styles...
}
.owl-controls {
    ...styles...
}
.owl-pagination .owl-page.active span,
.owl-controls.clickable .owl-pagination .owl-page:hover span {
    ...styles...
}

/* --- assumes all sliders will have fluid images  --- */

.owl-carousel .item img {
    display: block;
    width: 100%;
    height: auto;
}

/* --- .mini-multi slider  --- */
.mini-multi .item {
    background:red;
}

/* --- .full-width-slider slider  --- */
.full-width-slider .item {
    border:5px solid green
}
于 2014-10-16T15:50:20.553 回答
1

我发现这是最好的解决方案希望它有所帮助,

$(".owl-class-name").owlCarousel({
    loop: true,
    margin: 0,
    nav: true,
    responsive : {
      //breakpoint from 0 and up
      0 : {
         items : 1,
      },
      // add as many breakpoints as desired , breakpoint from 480 up
      480 : {
         items:1,
      },
      // breakpoint from 768 up
      768 : {
          items:2,
      },
      992 :{
          items:3,
      },
  }
  });
于 2018-11-13T07:56:00.513 回答