Existe-t-il un paramètre permettant au curseur de carrousel de se matérialiser de jouer automatiquement?
$('.carousel').carousel();
par exemple (ce paramètre ne fonctionne pas):
$('.carousel').carousel({
autoplay: true
});
Je vous remercie!
J'ai résolu le problème avec ceci:
$('.carousel').carousel({
padding: 200
});
autoplay();
function autoplay() {
$('.carousel').carousel('next');
setTimeout(autoplay, 4500);
}
Essayez d’exécuter la méthode next
comme ceci
$('.carousel').carousel();
setInterval(function() {
$('.carousel').carousel('next');
}, 2000); // every 2 seconds
J'ai eu le même problème et j'implémente la même solution que vous. Je viens d'ajouter une autre fonctionnalité pour relancer l'intervalle après avoir cliqué sur la flèche droite ou gauche (bouton).
Ma flèche droite a la classe .fa-angle-right (fontawsome) et la gauche .fa-angle-left.
Donc, la fonction Mon appel carrousel ressemble à ceci:
$('.carousel').carousel({
full_width: true,
time_constant: 100
});
var carouselAutoplay = setInterval(function() {
$('.fa-angle-right').click();
}, 7000);
$('.fa-angle-right').click(function() {
$('.carousel').carousel('next');
clearInterval(carouselAutoplay);
carouselAutoplay = setInterval(function() {
$('.fa-angle-right').click();
}, 7000);
});
$('.fa-angle-left').click(function() {
$('.carousel').carousel('prev');
clearInterval(carouselAutoplay);
carouselAutoplay = setInterval(function() {
$('.fa-angle-right').click();
}, 7000);
});
Vous pouvez simplement écouter le carrousel onCycleTo event puis réinitialiser/activer la lecture automatique comme ceci:
var carousel = jQuery('div#home-carousel');
carousel.carousel({
fullWidth: true,
indicators: true,
duration: 300,
onCycleTo : function($current_item, dragged) {
console.log($current_item);
stopAutoplay();
startAutoplay(carousel);
}
});
var autoplay_id;
function startAutoplay($carousel) {
autoplay_id = setInterval(function() {
$carousel.carousel('next');
}, 5000); // every 5 seconds
//console.log("starting autoplay");
}
function stopAutoplay() {
if(autoplay_id) {
clearInterval(autoplay_id);
//console.log("stoping autoplay");
}
}
Vous pouvez également empêcher le carrousel de glisser si l'utilisateur le survole:
$('.carousel.carousel-slider').carousel({fullWidth: true,indicators: true});
var autoplay = true;
setInterval(function() { if(autoplay) $('.carousel.carousel-slider').carousel('next'); }, 4500);
$('.carousel.carousel-slider').hover(function(){ autoplay = false; },function(){ autoplay = true; });