JQuery-Verzögerung vor FadeOut

Lesezeit: 2 Minuten

Ich habe ein Jquery-Skript geschrieben, mit dem ich Divs ein- und ausblenden und dann wiederholen kann. Der Code funktioniert gut. Wenn ich jedoch versuche, eine Verzögerung hinzuzufügen (ich möchte, dass das Div einige Sekunden vor dem Ausblenden bleibt), funktioniert es nicht richtig. Ich habe versucht, die Verzögerung an mehreren Stellen im Code hinzuzufügen, und keine scheint richtig zu funktionieren. Ich verwende Jquery Version 1.9.1

Hier ist das Skript, das ich geschrieben habe:

$(document).ready(function(){
   ShowPostDiv(0);
});

function ShowPostDiv(divIndex)
{
    $(".home_entry_txt").hide();

    if(divIndex >= $(".rotate_hide").length)
    {
        divIndex = 0;
    }
    var divPostHtml = $(".rotate_hide:eq("+divIndex+")").html();
    $(".home_entry_txt").html(divPostHtml); 
    $(".home_entry_txt").fadeIn(3000, function(){
             $(".home_entry_txt").fadeOut("slow");
        });
    divIndex++;
    setTimeout("ShowPostDiv("+divIndex+")", 4000);
}

  • Haben Sie versucht $(“.home_entry_txt”).delay(5000).fadeOut(“slow”); ?

    – isotrop

    28. März 2013 um 16:05 Uhr

  • Als Nebenbemerkung sollten Sie anstelle einer Zeichenfolge eine anonyme Funktion mit setTimeout verwenden. So, setTimeout(function() { ShowPostDiv(divIndex); }, 4000);

    – Colin DeClue

    28. März 2013 um 16:12 Uhr

Du kannst einfach schreiben

$(".home_entry_txt").fadeIn(3000).delay(1000).fadeOut("slow");

Haben Sie .delay() versucht? etwas wie:

$(".home_entry_txt").fadeIn().delay(200).queue(function(next) {
$(".home_entry_txt").fadeOut("slow");
});

Versuche dies

$(document).ready(function(){
   ShowPostDiv(0);
});

function ShowPostDiv(divIndex)
{
    $(".home_entry_txt").hide();

    if(divIndex >= $(".rotate_hide").length)
    {
        divIndex = 0;
    }
    var divPostHtml = $(".rotate_hide:eq("+divIndex+")").html();
    $(".home_entry_txt").html(divPostHtml); 
    $(".home_entry_txt").fadeIn(3000, function(){
        setTimeout(function(){
            $(".home_entry_txt").fadeOut("slow");
        },4000);
    });
    divIndex++;
}

  • Vielen Dank! Der Versuch, dies zu versuchen, führte dazu, dass es eingeblendet wurde, eine Weile blieb und dann ausgeblendet wurde. Das ist was ich will. Es wiederholt sich jedoch nicht mit dem nächsten div. Wie würde ich es dazu bringen, es noch einmal zu wiederholen, damit das nächste Div einblendet, eine Weile bleibt und dann ausblendet?

    – Benutzer2220474

    28. März 2013 um 19:21 Uhr

  • Ich bin mir nicht sicher, was du mit dem nächsten Div meinst?

    – iAmClownShoe

    28. März 2013 um 19:46 Uhr

1055730cookie-checkJQuery-Verzögerung vor FadeOut

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy