J'utilise actuellement Owl Carousel pour afficher une galerie sur des périphériques de la taille d'un ordinateur de bureau/ordinateur portable. Cependant, sur des appareils plus petits, je voudrais désactiver le plug-in et afficher chaque image empilée les unes sous les autres.
Est-ce possible? Je sais que vous pouvez modifier le carrousel de la chouette pour afficher un certain nombre d'images à l'écran à certains points d'arrêt. Mais j'aimerais pouvoir l'éteindre complètement, en supprimant tous les divs, etc.
Voici un stylo de ce avec quoi je travaille actuellement: http://codepen.io/abbasinho/pen/razXdN
HTML:
<div id="carousel">
<div class="carousel-item" style="background-image: url(http://owlgraphic.com/owlcarousel/demos/assets/owl1.jpg);">
</div>
<div class="carousel-item" style="background-image: url(http://owlgraphic.com/owlcarousel/demos/assets/owl2.jpg);">
</div>
<div class="carousel-item" style="background-image: url(http://owlgraphic.com/owlcarousel/demos/assets/owl3.jpg);">
</div>
</div>
CSS:
#carousel {
width: 100%;
height: 500px;
}
.carousel-item {
width: 100%;
height: 500px;
background-size: cover;
background-repeat: no-repeat;
background-position: center center;
}
jQuery:
$("#carousel").owlCarousel({
navigation : true,
slideSpeed : 300,
paginationSpeed : 400,
singleItem: true
});
Toute aide est reçue avec gratitude, comme toujours!
Je devais désactiver le plug-in si la largeur de l'écran est supérieure à 854px. Bien sûr, vous pouvez modifier le code pour répondre à vos besoins. Voici ma solution:
'off'
pour le connaître), ALORS appelez le plugin.destroy.owl.carousel
et supprimer l'élément de protection inutile 'owl-stage-outer'
après celui-ci.$(function() {
var owl = $('.owl-carousel'),
owlOptions = {
loop: false,
margin: 10,
responsive: {
0: {
items: 2
}
}
};
if ( $(window).width() < 854 ) {
var owlActive = owl.owlCarousel(owlOptions);
} else {
owl.addClass('off');
}
$(window).resize(function() {
if ( $(window).width() < 854 ) {
if ( $('.owl-carousel').hasClass('off') ) {
var owlActive = owl.owlCarousel(owlOptions);
owl.removeClass('off');
}
} else {
if ( !$('.owl-carousel').hasClass('off') ) {
owl.addClass('off').trigger('destroy.owl.carousel');
owl.find('.owl-stage-outer').children(':eq(0)').unwrap();
}
}
});
});
Et un peu de CSS pour montrer l’élément Owl désactivé:
.owl-carousel.off {
display: block;
}
Plus facile à utiliser une solution basée sur CSS
@media screen and (max-width: 992px) {
.owl-item.cloned{
display: none !important;
}
.owl-stage{
transform:none !important;
transition: none !important;
width: auto !important;
}
.owl-item{
width: auto !important;
}
}
La réponse de mcmimik est correcte, mais je devais faire un changement pour que cela fonctionne pour moi.
Dans la fonction:
$(window).resize(function () {
if ($(window).width() < 641) {
if ($('.owl-carousel').hasClass('off')) {
var owlActive = owl.owlCarousel(owlOptions);
owl.removeClass('off');
}
} else {
if (!$('.owl-carousel').hasClass('off')) {
owl.addClass('off').trigger('destroy.owl.carousel');
owl.find('.owl-stage-outer').children(':eq(0)').unwrap();
}
}
});
Echangez owl.addClass('off').trigger('destroy.owl.carousel');
pour owl.addClass('off').data("owlCarousel").destroy();
:
$(window).resize(function () {
if ($(window).width() < 641) {
if ($('.owl-carousel').hasClass('off')) {
var owlActive = owl.owlCarousel(owlOptions);
owl.removeClass('off');
}
} else {
if (!$('.owl-carousel').hasClass('off')) {
owl.addClass('off').data("owlCarousel").destroy();
owl.find('.owl-stage-outer').children(':eq(0)').unwrap();
}
}
});
function owlInitialize() {
if ($(window).width() < 1024) {
$('#carousel').owlCarousel();
}else{
$('#carousel').owlCarousel('destroy');
}
}
$(document).ready(function(e) {
owlInitialize();
});
$(window).resize(function() {
owlInitialize();
});
Violon de travail: https://jsfiddle.net/j6qk4pq8/187/
Simple, utilisez jQuery. Ajoutez une classe au conteneur div du carrousel, par exemple "<div id="carousel class='is_hidden'>
" avec certains CSS, par exemple ".is_hidden{display:none;}
". Utilisez ensuite jquery pour supprimer la classe ou ajoutez-la en fonction de la largeur de la fenêtre.