2010-07-25 4 views
5

나는 이것이 가능한지 알아 내려고하고있다. 나는 페이드 인/페이드 아웃하는 이미지 맵을 특정 부분 위에 올려 놓았다. 문제는 페이드가있는 동안 사용자가 다른 영역을 가리키면 그것은 마치 마우스가 움직여 진 영역에 대한 하나의 페이드를 끝내고 사라집니다. 사용자가 몇 개의 다른 영역들 사이를 빠르게 움직이면 페이드는 정말 불안하고 어색해 보입니다. 그래서 나는 마우스를 움직일 수 없도록하고 싶습니다. 다른 퇴색이 진행되는 동안 이벤트 (페이드)가 그냥 무시됩니다.페이드 인/아웃 중에 jquery, hover 이벤트를 비활성화/무시 하시겠습니까?

지연을 사용하는 것에 대해 생각해 봤지만 생각이 나면 작동 할 수 있는지 모르겠습니다. 너무 지연 페이드 .. 어떤 조언을 주셔서 감사합니다.

답변

3

난 당신이 queue buildup 문제를 언급하는 것 같아요. 애니메이션 방법 예를 들어 전에 stop 방법을 사용해보십시오 :

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

추가 정보를 :

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

부드러운 애니메이션에 관해서는, 당신이 jQuery Easing Plugin 갈 수 있습니다.

+0

고마워. 그게 도움이된다. 내게이 용어에 대한 정확한 정보를 알지 못했다. , 당신이 준 inf를 보겠습니다. – Rick

+0

@Rick : 당신은 환영합니다 :) – Sarfraz

8

코드를 보지 않고 도구에 :animated과 jQuerys .stop() 메서드가 혼합되어 있습니다. 당신은 또한 당신의 체인의 모든 .fadeIn() 전에 .stop(true, true)를 호출 할 수

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

처럼 보일 수

. 그러면 현재 애니메이션이 중단되고 fx queue 끝으로 이동합니다.

참고 : :animated selector, .stop(), .is()

+0

고마워. 지금은 알아 냈어. 그냥 검색 할 용어가 뭔지 모르겠다. – Rick