Материализовать Карусель слайдер autoplay
есть ли параметр, чтобы сделать слайдер материализовать карусель для автоматического воспроизведения?
$('.carousel').carousel();
например (этот параметр не работает):
$('.carousel').carousel({
autoplay: true
});
спасибо!
7 ответов
Я решил проблему с помощью этого:
$('.carousel').carousel({
padding: 200
});
setTimeout(autoplay, 4500);
function autoplay() {
$('.carousel').carousel('next');
setTimeout(autoplay, 4500);
}
попробовать-исполнителя next
способ такой
$('.carousel').carousel();
setInterval(function() {
$('.carousel').carousel('next');
}, 2000); // every 2 seconds
У меня была та же проблема, и я реализую то же решение, что и вы. Я просто добавил другую функциональность, чтобы перезапустить интервал после нажатия правой или левой стрелки (кнопки).
моя стрелка вправо имеет класс .fa-угол-правый (fontawsome) и левый .ФА-угол-влево.
поэтому моя функция вызова карусели выглядит так:
$('.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);
});
вы можете просто слушать карусель onCycleTo событие затем сбросить / включить автозапуск, как это:
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");
}
}
вы также можете предотвратить скольжение карусели, если пользователь ее зависает:
$('.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; });
Я решил проблему с этим кодом:
$('.carousel.carousel-slider').carousel({
fullWidth: true,
padding: 200
}, setTimeout(autoplay, 4500));
function autoplay() {
$('.carousel').carousel('next');
setTimeout(autoplay, 4500);
}
auto-play
С задержкой 4 секунды .
function autoplay() {
$('.carousel').carousel('next');
setTimeout(autoplay, 4000);
}
setTimeout(autoplay, 4000);