2010-11-24 13 views
5

Ich habe diesen CoderemoveClass und verblassen Animation

<ul class="nav sub_nav_home"> 
    <li id="sub_nav_home1"><a href="#"><span>LINK1</span></a></li> 
    <li id="sub_nav_home2"><a href="#"><span>LINK2</span></a></li> 
    <li id="sub_nav_home3"><a href="#"><span>LINK3</span></a></li> 
</ul> 

$("ul.sub_nav_home li").hover(function() { 
    $(this).removeClass("current").fadeOut(); 
}); 

dies scheint nicht die Animation war ich nach anzuzeigen. Was dies bewirkt, ist, das "li" vollständig verschwinden zu lassen.

Im Grunde, was ich brauche, ist die Klasse „Strom“ mit einem Fade-Out-Effekt zu entfernen und sie dann mit einem Fade-in-Effekt

Dank

Antwort

3

Sie können auf die nächste „li“ hinzufügen nicht verblassen von einer Klasse zur anderen. Sie müssen jQuery mitteilen, welche Eigenschaften in der .animate() -Methode animiert werden sollen.

Um das nächste li-Element zu erhalten, verwenden Sie .next().

+0

danke. Welche Art von Eigenschaften benötigen Sie in der animate() -Methode, um einen Fading-Effekt zu erhalten? – user

+0

@user: opacity http://api.jquery.com/animate/ aber Sie könnten 'fadeTo' oder beliebige jQuery-Effekte verwenden http://api.jquery.com/category/effects/ – Shikiryu

1

AFAIK ich glaube nicht, dass Sie eine fadeOut() zu einer removeClass() hinzufügen können. Jemand korrigiert mich, wenn ich falsch liege!

+0

Sie haben Recht, aber es ist möglich von Ihnen enthalten jQuery UI auf der Seite. Damit können Sie den Klassennamen mit der Animation entfernen. –

6

nicht sicher, ob Sie diese mit geraden jQuery tun kann, aber ich weiß, jQuery UI eine modifizierte removeClass(), die Sie mit einer Dauer hinzufügen können, die Klasse über jQuery UI Docs

0

Ja zu entfernen, können Sie dies tun mit etwas CSS3.

Sie fügen nur folgendes zu .current hinzu.

.current{ 
    color: #f00; 
    background-color: #000; 
    transition: color 0.5s, background-color 0.5s; 
    -webkit-transition: color 0.5s, background-color 0.5s; /* Safari */ 
} 

Offensichtlich müssen Sie Farbe/Hintergrundfarbe zu den Attributen ändern, die Sie animieren möchten. Ansonsten ist der Vorschlag von Cubed Eye, JqueryUI einzuschließen, großartig, da die removeClass in jQueryUI alles für Sie erledigt.