JQuery, отключить / игнорировать событие парения во время исчезновения? - PullRequest
5 голосов
/ 25 июля 2010

Я пытаюсь выяснить, возможно ли это ... У меня есть карта изображения, которая постепенно исчезает / исчезает на основе зависания над определенными частями ... Проблема в том, что когда пользователь наводит курсор на другую область во время fade, он завершает затухание, которое он делал, затем делает то же самое для области, в которую была перемещена мышь ... если пользователь быстро перемещается между несколькими различными областями, тогда затухания кажутся действительно нервными и неловкими, поэтому я хочу иметь возможность отключить событие hover (затухание) во время, когда происходит другое затухание, поэтому оно просто игнорирует его.

Я думал об использовании какой-то задержки, но я не знаю, может ли это сработать, так как я думаю, что это тоже задержит затухание. Любой совет приветствуется.

Ответы [ 2 ]

8 голосов
/ 25 июля 2010

Не видя ваш код, ваши инструменты представляют собой сочетание :animated и jQuerys .stop() метода.

Это может выглядеть как

$('imagemap').hover(function(){
   // only do something if no animation is in process (like fading)
   if(!$(this).is(':animated')){
   }
}, function(){
});

Вы также можете вызвать .stop(true, true)перед любым .fadeIn() в вашей цепочке.Это остановит текущую анимацию и перейдет к концу fx queue.

Ссылки: : анимированный селектор , .stop () , .есть ()

3 голосов
/ 25 июля 2010

Я думаю, вы имеете в виду проблему наращивание очереди .Попробуйте использовать метод stop перед методом анимации, например:

$(...).stop().fadeIn();

Подробнее:

http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup

Что касается плавной анимации, вы можете перейти на jQuery Easing Plugin .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...