Я создал галерею с автовоспроизведением.
Когда галерея перестает работать с анимацией, и мы наводим курсор на галерею, все работает как положено.
Но я получаю странную проблему:
Пока анимация галереи -> при наведении на галерею, clearTimeout, кажется, не работает правильно и при отпускании мыши галерея ведет себя странно
или происходит странный конфликт Я не могу понять и решить. Я вернулся в другую галерею, которую создал пару дней назад с похожей функциональностью, и столкнулся с той же проблемой.
Я упускаю что-то важное здесь
ГАЛЕРЕЯ В ВОПРОСЕ: jsFiddle
var myTimeOut;
/////// ANIMATION /////////////
function animation(cb){
$('#slider').animate({left: '-=600' },800, cb);
}
/////// AUTO SLIDE ////////////
function auto() {
myTimeOut = setTimeout(function() {
animation(function(){
auto();
});
}, 2000);
}
auto();
и как я пытаюсь его приостановить:
///// MOUSE actions //////////
$('#galcontainer').mouseenter( function () {
clearTimeout(myTimeOut);
});
$('#galcontainer').mouseleave( function () {
auto();
});
EDIT
Добавление 'флажка при наведении курсора' (как предложено в ответах) работает почти замечательно, но небольшая ошибка, использующая это решение, видна, когда 'fast mouseenter / mouseleave В ТЕЧЕНИЕ анимации.
Решением этой проблемы может быть добавление $ ('# slider'). Stop () в mouseleave. Не отличное решение.
Что еще я могу сделать?