Здравствуйте!
На сайте установлен слайдер Roundabout
вызывается таким набором параметров:
$(document).ready(function() {
$('#wrap_slider .slider ul').css("width","900px").roundabout({
autoplay: true,
duration: 500,
autoplayDuration: 3000,
autoplayPauseOnHover: true
});
});
Необходимо, что бы автоплей останавливался не только по наведении на область слайдера, но и при первом клике по кнопка Назад или Вперед и включался обратно только после перезагрузки страницы.
Единсвенное что пришло в голову - по нажатию на одну из стрелок заменять значение автоплей на фалсе и перезапускать инициализацию слайдера.
Вот функции, которые отвечают за стоп автоплея при наведении. может их как то можно переделать для click? Я в этом совсем не силен
// autoplay pause on hover
if (settings.autoplayPauseOnHover) {
self
.bind("mouseenter.roundabout.autoplay", function() {
methods.stopAutoplay.apply(self, [true]);
})
.bind("mouseleave.roundabout.autoplay", function() {
methods.startAutoplay.apply(self);
});
}
// autoplay
// -----------------------------------------------------------------------
// startAutoplay
// starts autoplaying this roundabout
startAutoplay: function(callback) {
return this
.each(function() {
var self = $(this),
data = self.data("roundabout");
callback = callback || data.autoplayCallback || function() {};
clearInterval(data.autoplayInterval);
data.autoplayInterval = setInterval(function() {
methods.animateToNextChild.apply(self, [callback]);
}, data.autoplayDuration);
data.autoplayIsRunning = true;
self.trigger("autoplayStart");
});
},
// stopAutoplay
// stops autoplaying this roundabout
stopAutoplay: function(keepAutoplayBindings) {
return this
.each(function() {
clearInterval($(this).data("roundabout").autoplayInterval);
$(this).data("roundabout").autoplayInterval = null;
$(this).data("roundabout").autoplayIsRunning = false;
// this will prevent autoplayPauseOnHover from restarting autoplay
if (!keepAutoplayBindings) {
$(this).unbind(".autoplay");
}
$(this).trigger("autoplayStop");
});
},
// toggleAutoplay
// toggles autoplay pause/resume
toggleAutoplay: function(callback) {
return this
.each(function() {
var self = $(this),
data = self.data("roundabout");
callback = callback || data.autoplayCallback || function() {};
if (!methods.isAutoplaying.apply($(this))) {
methods.startAutoplay.apply($(this), [callback]);
} else {
methods.stopAutoplay.apply($(this), [callback]);
}
});
},
// isAutoplaying
// is this roundabout currently autoplaying?
isAutoplaying: function() {
return (this.data("roundabout").autoplayIsRunning);
},
// changeAutoplayDuration
// stops the autoplay, changes the duration, restarts autoplay
changeAutoplayDuration: function(duration) {
return this
.each(function() {
var self = $(this),
data = self.data("roundabout");
data.autoplayDuration = duration;
if (methods.isAutoplaying.apply(self)) {
methods.stopAutoplay.apply(self);
setTimeout(function() {
methods.startAutoplay.apply(self);
}, 10);
}
});
},
Спасибо за ответы!