Ich möchte jedes nav li
eins nach dem anderen verblassen. Hier ist mein aktueller Code. Es zeigt das ganze div, jetzt will ich jedes li
eins nach dem anderen mit einer leichten Verzögerung einblenden.Fade in jedem li eins nach dem anderen
$(document).ready(function(){
$("#circleMenuBtn").click(function(){
$("#dropDownMenu").fadeIn(500);
});
});
<div class="sub-menu" id="dropDownMenu">
<ul id="navbar">
<li> First</li>
<li>Second</li>
<li>Third</li>
<li>Fourth</li>
<li>Fifth</li>
</ul>
</div>
.sub-menu {
position: absolute;
z-index: 1000;
color: #fff;
right: 5px;
display: none;
}
Ich habe versucht, für Schleifen in jedem li
in einer Iteration zu verblassen versucht, aber ohne Erfolg. Bitte teilen Sie Ihre Ideen.
UPDATE: Rory McCrossans Code ist perfekt. Leider ist es nicht mit meinem Code kompatibel, der das Menü verbirgt, wenn außerhalb darauf geklickt wird.
$(document).mouseup(function (e) {
var container = $("#dropDownMenu");
if (!container.is(e.target)
&& container.has(e.target).length === 0) {
container.fadeOut(500);
}
});
Was ist schiefgelaufen? Ich habe gerade angefangen, JS und JQuery zu lernen, also bitte vergib mir, wenn es eine lahme Frage ist.
Große Lösung ausmacht, wirkt wie ein Zauber! Warum widerspricht es meinem Code, das Menü zu schließen? – kulan
Was genau funktioniert nicht? Aus dem Aussehen Ihres Codes könnte das Problem sein, dass Sie das '# dropDownMenu'-Element ausbleichen, doch mein Code verblasst nur die' li' Elemente, so dass Sie die Elemente nicht mehr sehen können, sobald ein 'mouseup' ausgelöst wurde. Versuchen Sie dies in Ihrem Code: 'container.find ('li'). FadeOut (500);' –
das ist eine wirklich nette Lösung! – Olof