2017-09-30 2 views
0

Ich bin sehr neu zu jQuery, also bitte etwas Geduld.Die Funktion .fadeIn funktioniert nicht

Ich möchte eine Liste Schritt für Schritt einblenden. Aber irgendetwas stimmt nicht mit meiner Funktion. Kann mir bitte jemand helfen?

Vielen Dank!

Edit: Ich habe einen Blick auf alles und kann keine Fehler finden. Der Körper hat die benötigte Klasse.

$(".sideThree ul").children().each(function(i) { 
 
    if ($('body').hasClass("content-three-has-open")){ 
 
    $(".sideThree ul").css('display','block'); 
 
    $(this).fadeIn((i++) * 500); 
 
    } 
 
});
.sideThree ul { 
 
    list-style-type: none; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.sideThree ul li { 
 
    list-style-type: none; 
 
    margin-bottom: 15px; 
 
    float: left; 
 
    padding: 25px; 
 
    background: #2b2b2b; 
 
    width: 49%; 
 
    margin-right: 1%; 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="sideThree-content"> 
 
    <div class="row"> 
 
\t <div class="col-lg-16"> 
 
\t \t <ul> 
 
\t \t  <li>// some content</li> 
 
\t \t  <li>// some content</li> 
 
\t \t  <li>// some content</li> 
 
\t \t  <li>// some content</li> 
 
\t \t  <li>// some content</li> 
 
\t \t  <li>// some content</li> 
 
\t \t  <li>// some content</li> 
 
\t \t </ul> 
 
\t </div> 
 
    </div> 
 
</div>

+1

Bitte fügen Sie Ihren ** HTML ** Code hinzu! –

Antwort

1

Sie müssen nur .fadeIn anrufen und Ihren Verzögerungswert als Parameter übergeben, z.B. $(this).fadeIn((i++) * 500);. Hier

ist ein Codepen: https://codepen.io/anon/pen/xXrNLr

(ich bin vorausgesetzt, es Absicht ist, dass Sie die Verzögerung wollen pro Listenelement zu erhöhen, wenn nicht sie würden gerade i * 500 wie die Verzögerung tun).

Edit: Wenn die Liste zunächst auf Anzeige eingestellt ist: keine, können Sie diese Zeile in Ihrem if-Anweisung hinzu:

$(".sideThree ul").children().each(function(i) { 
    if ($('body').hasClass("content-three-has-open")){ 
    $(".sideThree ul").css('display','block'); 
    $(this).fadeIn((i++) * 500); 
    } 
}); 

Alternativ können Sie die CSS ändern, so dass es die Listenelemente ist, die Anzeige sind: keine, ich believe fadeIn() legt sie so fest, dass sie vor dem Fading angezeigt werden.

+0

Danke für Ihre Hilfe. Aber überall wo ich ein Problem habe. In CSS wird die Liste so eingestellt: none; und die Funktion sieht nun:.. '$ (“. sideThree ul ") Kinder() jede (function (i) { \t \t \t \t if ($ (document.body) .hasClass (" content-drei- hat-open ")) { \t \t \t \t $ (this) .fadeIn ((i ++) * 500); \t \t \t \t} \t \t \t});' –

+0

ich habe ein bisschen mehr zu meinem hinzugefügt antwort, hilft das? – delinear

+0

Danke! Ich weiß nicht, was passiert. Die Funktion funktioniert großartig ohne die if-Anweisung. Sobald ich die if-Anweisung verwende, funktioniert nichts mehr so ​​wie es sollte. –

Verwandte Themen