2012-01-20 17 views
7

Sınıflar arasında kaybolup, öğeye ve çocuklarına uygulanan tüm stilleri sorunsuzca değiştirebilmem gerekir. Bu jQuery kullanılarak nasıl yapılabilir? Sınıfları nasıl ekleyeceğimi/kaldırılacağını biliyorum, ancak bu iki farklı renk arasında güzel bir geçişle aynı şey değil.jQuery: sınıflar arasında nasıl kaybolulur?

+0

Olası yinelenen: http://stackoverflow.com/questions/2176413 bunu yapabilirsiniz –

+0

bu jQuery UI'nin Geçiş eklentisi ile (IIRC), ama jQuery UI'yi tavsiye etmekteyim, ama bu kişi al tercihi. – Bojangles

+0

jQuery ile yapılması gerekiyor mu? En yeni tarayıcılar (tabii ki, IE, muhtemelen bir sonraki sürüm IE10 hariç), özel stil kurallarını kullanırsanız CSS geçişlerini bir dereceye kadar destekler. Yoksa problem mi bu? – JayC

cevap

8

jQuery UI süresince bir argüman olan bir toggleClass işlevi vardır: Örneğin

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

, benim sitelerinden biri bunu yapmak (giriş/çıkış light sınıfı fade ve dark sınıf üzerinden/kararma):

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

Bu son derece umut verici görünüyor. kontrol etmeliyim. Teşekkürler! – Andrew

+1

cevabınız teknik olarak sorduğum şeyi başardığından, size kredi veriyorum ama jQuery UI sınıf animasyonlarıyla ilgili deneyimlerim korkunçtu. İçeriğin arkasına yerleştirilmiş olan giriş/çıkış katmanlarını karıştıran bir şeyi hackledim. – Andrew

+0

Bu durumda, düzeninizi yapılandırmanın daha etkili bir yolu olabilir. Bazen planlarımı fonksiyonel olarak işe yaramaya başlamadan önce yarım düzine kadar tekrarlamalıyım. :) – Matt

0

FadeIn'i deneyin.

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

$(".myClass").fadeIn("slow"); 
rağmen diğer belirtildiği gibi jQuery UI gerekebilir karmaşıklığına bağlı.

+3

Bu, öğelere uygulanan sınıftan değil, öğelerde kaybolur. – Matt

+0

Doğru, bu işlevsellik jQuery core imo içinde olmalıdır. –

3

Bu, yapmaya çalıştığınız şey bu mu? 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

bu temelde ne yaptım bitti – Andrew

İlgili konular