В веб-приложение, я работаю, я хочу, чтобы создать некоторые слайдерdiv
S, который будет двигаться вверх и вниз с Mouseover & отведении указателя мыши (соответственно). Я в настоящее время она реализуется с hover()
функции JQuery, в с помощью animate()
и сокращения/Increment is top
Значение css по мере необходимости. На самом деле это работает довольно хорошо.Как остановить оживленную анимацию JQuery?
Проблема в том, что она имеет тенденцию застревать. Если вы переместите указатель мыши над ним (особенно возле нижней части) и быстро удалите его, он будет непрерывно перемещаться вверх & и не останавливаться, пока не завершится 3-5 циклов. Для меня кажется, что проблема может быть связана с одной анимацией, начинающейся до того, как другая будет выполнена (например, обе пытаются запустить, поэтому они перемещаются назад и вперед.)
Хорошо, теперь для кода. Вот основной JQuery, что я использую:
$('.slider').hover(
/* mouseover */
function(){
$(this).animate({
top : '-=120'
}, 300);
},
/* mouseout*/
function(){
$(this).animate({
top : '+=120'
}, 300);
}
);
Я также воссоздали поведение в JSFiddle.
Любые идеи о том, что происходит? :)
== EDIT == ОБНОВЛЕНО JSFiddle
Это кажется только скользить вверх и вниз один раз для меня, когда я удалить его быстро в скрипку –
При наведении курсора на innerContent, она движется вверх, что делает его больше не под мышкой, активируя событие mouseleave, заставляя его оживить его исходное положение. Что вы на самом деле пытаетесь сделать? –
@ Kevin, проблема, о которой он говорит, заключается в том, что иногда, когда вы перемещаете мышь над слайдером только один раз, анимация выполняет несколько циклов, то есть многократно поднимается и опускается. –