2012-01-20 6 views
7

클래스간에 페이드하고 요소와 그 자식에 적용되는 모든 스타일을 자연스럽게 전환 할 수 있어야합니다. 어떻게 jQuery를 사용하여이 작업을 수행 할 수 있습니까? 클래스를 추가/제거하는 방법을 알고 있지만 완전히 다른 두 색상 사이의 멋진 전환과는 다릅니다.jQuery : 클래스 간 페이드 (fade) 방법은 무엇입니까?

+0

가능한 중복 : http://stackoverflow.com/questions/2176413 당신이 할 수있는 –

+0

이 jQuery UI의 Transition Plugin (IIRC)을 사용하지만 jQuery UI를 추천하지는 않는다. 선호. – Bojangles

+0

jQuery를 사용해야합니까? 가장 최근의 브라우저 (물론 IE는 제외하고, 다음 버전을 제외하고, IE10)는 독자적인 스타일 규칙을 사용하면 CSS 전환을 어느 정도 지원합니다. 아니면 그게 문제인가? 매우 유망 해 보이는 – JayC

답변

8

jQuery를 UI는 기간 동안 인수가있는 toggleClass 기능이 있습니다 예를 들어

http://jqueryui.com/demos/toggleClass/

를 내 사이트 중 하나에 이렇게 (/ 아웃 light 클래스를 페이드와 dark 클래스에서/페이드) :

$('body').toggleClass('light', 250).toggleClass('dark', 250); 
+0

. 나는 그것을 조사해야 할 것이다. 감사! – Andrew

+1

당신의 답이 기술적으로 내가 묻는 것을 달성했기 때문에 나는 당신에게 크레딧을주고 싶지만 jQuery UI 클래스 애니메이션에 대한 나의 경험은 끔찍했다. 나는 내용 뒤에 배치 된 페이드 인/아웃 레이어와 관련하여 함께 해킹을했다. – Andrew

+0

그런 경우 레이아웃을 구성하는보다 효과적인 방법이있을 수 있습니다. 때로는 제 기능을 정상적으로 시작하기 전에 계획을 반 십여 번 반복해야합니다. :) – Matt

0

fadeIn을 시도하십시오.

http://api.jquery.com/fadeIn/

$(".myClass").fadeIn("slow"); 
비록 다른 언급이 당신이 jQuery를 UI를해야 할 수도 복잡성에 따라.

+3

요소에 적용된 클래스가 아니라 요소가 사라집니다. – Matt

+0

사실,이 기능은 jQuery core imo에 있어야합니다. –

3

달성하려는 목표입니까? Here's the jsFiddle

HTML :

<input type="button" id="toggle" value="toggle" /> 
<br /> 
<div id="classContainer"> 

    <div id = "class1"> 

    </div> 
    <div id = "class2"> 
    </div> 
</div> 

jQuery를 :

$("#toggle").click(function(){ 
    if ($("#class1").is(":visible")) { 
     $("#class1").fadeOut(); 
     $("#class2").fadeIn(); 
    } 
    else { 
     $("#class1").fadeIn(); 
     $("#class2").fadeOut(); 
    } 
}); 

CSS :

#classContainer 
{ 
    position: relative; 
} 

#class1, #class2 
{ 
    height: 100px; 
    width: 100px; 
    position: absolute; 
    top: 0; 
    left: 0; 
} 

#class1 
{ 
    background-color: red; 
    display: none; 
} 

#class2 
{ 
    background-color: blue; 
} 
+0

이것은 기본적으로 내가 끝낸 일이다. – Andrew