我的 owl-carousel 有问题。一切正常,但事件元素是页面上的第一个而不是中间的元素(彩色是事件元素)。您可以在以下屏幕截图中看到这一点。
我希望中间项始终是事件项。
我的 JQuery 代码:
jQuery(".owl-carousel").owlCarousel({
items:3,
loop:true,
nav:true,
responsive:{
0:{
items:1,
stagePadding: 450
},
600:{
items:1,
stagePadding: 450
},
1000:{
items:1,
stagePadding: 450
}
}
});
我发现了类似的东西,但它不起作用:
jQuery(".owl-carousel").owlCarousel({
items:3,
loop:true,
nav:true,
// THIS IS THE NEW PART
afterAction: function(el){
//remove class active
this
.$owlItems
.removeClass('active')
//add class active
this
.$owlItems //owl internal $ object containing items
.eq(this.currentItem + 1)
.addClass('active')
}
// END NEW PART
responsive:{
0:{
items:1,
stagePadding: 450
},
600:{
items:1,
stagePadding: 450
},
1000:{
items:1,
stagePadding: 450
}
}
});
最佳答案
Owl Carousel 将 .active
类添加到所有可见项,而不仅仅是其中一个。
但是当你使用 the center
option ,只有中心项获得 .center
类。
看看这个演示:https://codepen.io/glebkema/pen/Xjryjd
$('.owl-carousel').owlCarousel({
autoplay: true,
center: true,
loop: true,
nav: true,
});
.owl-item.active > div:after {
content: 'active';
}
.owl-item.center > div:after {
content: 'center';
}
.owl-item.active.center > div:after {
content: 'active center';
}
.owl-item > div:after {
font-family: sans-serif;
font-size: 24px;
font-weight: bold;
}
<div class="owl-carousel owl-theme">
<div><img src="https://via.placeholder.com/300x200/936/fff/?text=1" alt=""></div>
<div><img src="https://via.placeholder.com/300x200/693/fff/?text=2" alt=""></div>
<div><img src="https://via.placeholder.com/300x200/369/fff/?text=3" alt=""></div>
<div><img src="https://via.placeholder.com/300x200/f63/fff/?text=4" alt=""></div>
</div>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.default.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js"></script>
PS 你可以简化你的代码。
items:3,
responsive:{
0:{
items:1,
stagePadding: 450
},
600:{
items:1,
stagePadding: 450
},
1000:{
items:1,
stagePadding: 450
}
相当于
items:1,
stagePadding: 450,
PPS。 450
对于 the stagePadding
option 来说是一个非常大的数字在窄屏幕上。
关于javascript - 事件元素应该在 Owl Carousel 的中间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37388182/