2016-06-21 6 views
0

Ich modifiziere gerade dieses Stück Code als Teil eines Projekts, es funktioniert gut für das, was ich brauche, aber ich möchte eine relativ kurze Übergangsperiode, aber die erste div Das Element wird nur für einen kurzen Moment angezeigt und der Fade-Prozess beginnt.Wie verzögere ich das erste FadeIn Event auf Slider

Ich fragte mich, ob jemand mir helfen könnte, das zu korrigieren. Im Idealfall würde Ich mag den anfänglichen slider Zeitraum einstellen oder verzögern den Prozess auslöst,

var divs = $('.fade'); 

function fade() { 
var current = $('.current'); 
var currentIndex = divs.index(current), 
    nextIndex = currentIndex + 1; 

if (nextIndex >= divs.length) { 
    nextIndex = 0; 
} 

var next = divs.eq(nextIndex); 
    current.stop().fadeOut(500, function() { 
    $(this).removeClass('current'); 
    setTimeout(fade, 5000); 
}); 

next.stop().fadeIn(500, function() { 
    $(this).addClass('current'); 
}); 
} 
fade(); 
+0

Könnte man 'setTimeout (fade, 5000);' beim ersten Fade-Aufruf nicht tun. –

+0

Welches Bit sollte ich hinzufügen? Immer noch finde ich meinen Weg um diese Art der Codierung – mcktj

Antwort

0

die Funktion zu verzögern fade() von Start sofort tut gerade:

var divs = $('.fade'); 

function fade() { 
.... 
} 
setTimeout(fade, 5000); //here is the only change 

Am Ende des Codes fade() wird sofort ausgeführt. Füge einfach ein Timeout hinzu. 5000 ist in Millisekunden, schalten Sie das nur auf die gewünschte Verzögerungszeit um.

Abgesehen von Ihrer Frage, ob Sie die Fade-Funktion nur dann auf Objekte anwenden möchten, nachdem Sie darauf geklickt haben, können Sie dies tun.

$('.fade').on('click',function(){//instead of click you could use any event ex. mouseover 
    fade();//call fade function 
}); 
+0

Das ist ein nützlicher Ausschnitt :) – mcktj

+0

hat den oberen Teil arbeiten @mcktj –

+0

Ja - wie ein Charme vielen Dank, genau die Wirkung, die ich suchte :) – mcktj

Verwandte Themen