2011-12-19 2 views
1

fadeIn과 결합 할 때 정지 기능에 문제가 있습니다.JQuery hover stop(). fadeIn() 문제

내 fadeIn은 2000ms로 설정되어 있으며 애니메이션이 생성되지 않도록 stop()을 도입했습니다. 그러나 문제는 stop (true, true)을 사용하면 애니메이션의 끝으로 건너 뜁니다. stop() 만 사용하면 대상을 여러 번 가리킬 때 효과가 100 % 작동하지 않습니다. 즉. 이 효과가 서로 인접 해있는 두 div가 있고 커서를 각각 빠르게 움직이면 호버 효과가 시작되지 않습니다.

다음은 코드입니다.

$('#menu li').hover(
//Mousein  
function() { 
    $(this).children('div').stop(true, true).fadeIn(2000); 
}, 

//Mouseout 
function() { 
    $(this).children('div').stop(true, true).fadeOut(2000); 

}); 

끝까지 건너 뛰지 않고 애니메이션을 올바르게 중지/시작하는 방법이 있습니까?

+1

두 번째 변수는 "* jumpToEndA * : 현재 애니메이션을 즉시 완료할지 여부를 나타내는 부울이며, 기본값은 false입니다." "(true, false)"를 시도 했습니까? – techie007

답변

0

다음은 내가 조리 한 내용입니다. 솔루션이 아니라 대화 시작 도구입니다. 마우스가 윈도우 뷰포트 안에있는 한 제대로 작동합니다.

http://jsfiddle.net/mcritz/AwzQ7/

2

다음과 같은 방법으로 당신이 무슨 뜻인지 정확히 지정하지 않은 "시간의 100 % 작동하지 않습니다." 이전에 그 1.7 jQuery를 버전을 사용하는 경우, 당신은이 알려진 결함 볼 수 있습니다 : jQuery를 1.7로

(.stop으로 조기에 전환 애니메이션을 중지하면) jQuery의 내부 효과를 트리거합니다 추적. 이전 버전에서는 토글 된 애니메이션이 완료되기 전에 .stop() 메서드를 호출하면 애니메이션이 상태를 추적하지 못하게되었습니다 (jumpToEnd가 false 인 경우). 이후의 모든 애니메이션은 새로운 "반쪽"상태에서 시작되며 때로는 요소가 사라집니다.

.stop() - jQuery API에서 "애니메이션 전환"을 참조하십시오.