2011-11-25 7 views
3

내가 원하는 것은 div를 페이드 아웃하고 다른 페이드를 페이드 아웃하는 것입니다. 링크를 가리키면 나는 이전 div를 페이드 아웃하고 적절한 div로 페이드 싶습니다. 너무 빨리 링크를 가리키지 않으면 모든 것이 잘 작동합니다. 너무 빨리 가져 가면 div가 사라지지 않을 것입니다. stop()을 사용하여 시도해 보았고 stop 함수에서 true false를 여러 가지 조합으로 시도했지만 아무 것도 작동하지 않았습니다. 페이드 타이머를 0으로 변경하면 작동합니다. 내가 가지고있는 코드는 여기에 붙여 넣기에는 너무 많지만 기본적으로 단순한 페이드 인/페이드 아웃은 아닙니다. 나는 페이드 기능 전에 계속 다른 물건을 여기 페이드 인/페이드 아웃 문제가 발생했습니다. 멈추지 만 작동하지 않습니다.

라고 내 페이드 기능

var fadeEffect = function (a, b) { 
    $(a).fadeOut(300, function() { 
     $(b).fadeIn(300); 
    }); 
} 

은 객체의 내부 개인 함수의입니다 있습니다. 나는 stop()을 a 또는 b에 사용하려고 시도했지만 여전히 똑같은 것을 얻는다. 내가 300을 0으로 변경하면 잘 작동합니다. 누구나 아이디어가 있습니까?

여기

단순화 된 버전 내가 업데이트 한 http://jsfiddle.net/LLMUX/9/

+0

을 HTML을 추가하거나 http://jsfiddle.net/을 작성해 주시면 감사하겠습니다. – ManseUK

+0

바이올린이 추가되었습니다. 공유 도구를 사용해 주셔서 감사합니다. – Huangism

+0

'stop (true, true) '을 시도하셨습니까? 'fadeIn' /'fadeOut'는 애니메이션이 시작될 때 현재 불투명도를 저장합니다. – zzzzBov

답변

1

당신의 JSFiddle ->http://jsfiddle.net/manseuk/LLMUX/11/

애니메이션되고 있었다 div의에 정지를 추가했다 내가 뭘 한 - 중복 중지한다 :

$("#vehicleSelector .vehiclesList").bind({ 
     mouseenter: function(event) { 
      $('#vehicleSlides div, #promoSlides div').stop(true,true); // stop any running animations 
      event.stopPropagation(); 
      sControl.timerIsOn = false; 
      showSecondary(this.id) 
     }, 
     mouseleave: function(event) { 
      $('#vehicleSlides div, #promoSlides div').stop(true,true); // stop any running animations 
      event.stopPropagation(); 
      next(); 
     } 
    }); 
관련 문제