Je travaille avec le carrousel de hibou 2 pour le contenu du carrousel.
JS:
$('#owl-demo').owlCarousel({
loop: true,
margin: 10,
nav: true,
items: 1,
});
HTML:
<div id="owl-demo" class="owl-carousel">
<div class="item"><h4>1</h4></div>
</div>
Problème:
quand j'ai un contenu (contenu dynamique utilisant PHP) loop:true
et items:1
ne fonctionne pas et je vois vide Mais si j'ajoute deux contenus Owl a fonctionné vrai !!
[~ # ~] modifier [~ # ~] : mon contenu est dynamique (1 - ....). lorsque mon résultat est un hibou de contenu a un problème.
Problème DÉMO
travaillé DÉMO
comment résoudre ce problème?
J'espère que la méthode ci-dessous résoudra votre problème.
Vous n'avez pas besoin de modifier le carrousel de hibou js. La même méthode peut également être appliquée à Bx Slider.
$('.owl-demo').owlCarousel({
margin: 0,
responsiveClass: true,
smartSpeed: 500,
dots: ($(".owl-carousel .item").length > 1) ? true: false,
loop:($(".owl-carousel .item").length > 1) ? true: false,
responsive: {
0: {
items: 1,
},
500: {
items: 1,
},
768: {
items: 1,
}
}
})
J'ai utilisé cette méthode pour résoudre le problème et je pense que c'est assez facile.
var options={
margin: 10,
nav: true,
items: 1
};
if($('#owl-demo .owl-item').length>1){
options.loop=true;
}
$('#owl-demo').owlCarousel(options);
Vous pouvez vérifier le nombre d'éléments .item avant d'appeler votre plugin comme ceci:
// Be more specific with your selector if .items is used elsewhere on the page.
var items = $('.items');
if(items.length > 1) {
$('#owl-demo').owlCarousel({
loop: true,
...
});
} else {
// same as above but with loop: false;
}
Si vous ne voulez mettre qu'une seule image dans owlCarousel en tant qu'image de bannière, vous pouvez ajouter un argument dans housl carrousel js.
singleItem: true
comme ça:
<script type="text/javascript">
$(document).ready(function() {
$('#main_banner').owlCarousel({
margin: 0,
loop: true,
navText: [ "<img src='images/leftArrow.png'>", "<img src='images/rightArrow.png'>" ],
dots: false,
items :1,
autoplay: true,
singleItem: true
});
});
</script>