使用Owl Carousel 2.0显示下一个和上一个项目的一部分

Big*_*eef 19 css jquery carousel owl-carousel owl-carousel-2

我正在使用Owl Carousel 2.0.我想显示前一项(左侧)的一个项目,一半(或更少)以及下一项目(右侧)的一半(或更少).只是把它们的一部分放在右边和左边:

在此输入图像描述

我一直在尝试使用CSS(paddingmargin负面的owl-stage-outer),但显然Javascript覆盖它们.

到目前为止,这是我的代码:

$('.owl-carousel').owlCarousel({
  loop: true,
  margin: 10,
  nav: true,
  responsive: {
    0: {
      items: 1
    },
    600: {
      items: 3
    }
  }
})
Run Code Online (Sandbox Code Playgroud)
.owl-carousel .item h4 {
  color: #FFF;
  font-weight: 400;
  margin-top: 0em;
}

.owl-carousel .item {
  height: 10em;
  background: #4DC7A0;
  padding: 1em;
}

.wrapper {
  width: 40em;
}
Run Code Online (Sandbox Code Playgroud)
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="//cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.2.1/assets/owl.carousel.min.css" rel="stylesheet" />
<script src="//cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.2.1/owl.carousel.min.js"></script>

<div class="wrapper">
  <div class="owl-carousel">
    <div class="item">
      <h4>1</h4>
    </div>
    <div class="item">
      <h4>2</h4>
    </div>
    <div class="item">
      <h4>3</h4>
    </div>
    <div class="item">
      <h4>4</h4>
    </div>
    <div class="item">
      <h4>5</h4>
    </div>
    <div class="item">
      <h4>6</h4>
    </div>
    <div class="item">
      <h4>7</h4>
    </div>
    <div class="item">
      <h4>8</h4>
    </div>
    <div class="item">
      <h4>9</h4>
    </div>
    <div class="item">
      <h4>10</h4>
    </div>
    <div class="item">
      <h4>11</h4>
    </div>
    <div class="item">
      <h4>12</h4>
    </div>
  </div>
Run Code Online (Sandbox Code Playgroud)

wit*_*rin 38

最简单的方法是使用stagePadding.演示如下:

$(function() {
  $('.owl-carousel').owlCarousel({
    margin: 10,
    loop: true,
    items: 1,
    stagePadding: 100
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="//cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.2.1/assets/owl.carousel.min.css" rel="stylesheet" />
<script src="//cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.2.1/owl.carousel.min.js"></script>

<div class="owl-carousel">
  <div class="item"><img src="//placehold.it/350x150&text=1" /></div>
  <div class="item"><img src="//placehold.it/350x150&text=2" /></div>
  <div class="item"><img src="//placehold.it/350x150&text=3" /></div>
  <div class="item"><img src="//placehold.it/350x150&text=4" /></div>
  <div class="item"><img src="//placehold.it/350x150&text=5" /></div>
  <div class="item"><img src="//placehold.it/350x150&text=6" /></div>
  <div class="item"><img src="//placehold.it/350x150&text=7" /></div>
  <div class="item"><img src="//placehold.it/350x150&text=8" /></div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法只使用`stagePadding`或类似的东西而不是两个?我想只显示右边下一个元素的一部分,而不显示左边的前一个元素 (5认同)
  • 如果只需要一侧,则在样式中将`.margin-left`添加到`.owl-stage`中(与舞台填充相同,但为负数)。仅一侧会被填充。 (3认同)

小智 6

此外,如果您只想从右侧获得下一项的一部分,请使用@witrin 提到的:

$('.owl-carousel').owlCarousel({
    margin: 10,
    loop: true,
    items: 1,
    stagePadding: 30
});
Run Code Online (Sandbox Code Playgroud)

并以您的风格编写css:

.owl-stage{
    left:-30
}
Run Code Online (Sandbox Code Playgroud)

有一个好的代码。