2010-07-25 1 views
5

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

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

ответ

3

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

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

Дополнительная информация:

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

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

+0

Спасибо .. это помогает, это было делом меня, не зная правильную терминологию для поиска информации об этом , Я посмотрю на информацию, которую вы указали – Rick

+0

@ Rick: Добро пожаловать :) – Sarfraz

8

Без просмотра кода ваши инструменты представляют собой сочетание :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.

Ссылки: :animated selector, .stop(), .is()

+0

Спасибо .. Я понял это сейчас, просто не знал, какую терминологию искать, я думаю, – Rick