Выполнение события один раз
Здравствуйте, проблема следующая, событие mousemove отрабатывает при определенном положении курсора, после этого выполняется анимация, все отрабатывает, но событие постоянно выполняется при соблюдении условия, возникают тормоза, каким образом можно выполнить единожды при соблюдении условия?
$(document).mousemove(function(e){ var y=e.pageY,s1=$('.service1').children('.service-item-txt'); if (y>1000&&y<1300) s1.stop().animate({top:'0px'},350); if (y<1000||y>1300) s1.stop().animate({top:'220px'},350); }); |
darl,
попробуйте stop(true, true) или обьясните что значит единожды -- ненужна функция так отключите через off |
Сделайте флаг что анимация идет, и не запускайте пока она идет.
var animationActive = false; $(document).mousemove(function(e){ var y=e.pageY,s1=$('.service1').children('.service-item-txt'); if (animationActive) return false; if (y>1000&&y<1300) { s1.stop().animate({top:'0px'},350, function () { animationActive = false; }); animationActive = true; } }); второй по аналогии |
Цитата:
|
Цитата:
|
darl,
Чтобы корректно отрабатывала вторая анимация попробуйте параметры в stop как предложил рони |
Часовой пояс GMT +3, время: 06:15. |