2016-04-01 5 views
0

Ich brauche die // OUT-Funktion, um mein div nach 3 Sekunden statt 1 Sekunde zu verbergen. Ich schätze das Problem ist, dass ich etwas anwenden sollte, um die // OUT-Funktion auszulösen, nachdem das div angezeigt wird, aber ich weiß nicht, wie man es löst. bitte hilfe. Ich brauche die Funktion // OUT, um unabhängig zu arbeiten, will der // IN-Funktion nichts hinzufügen, weil einige divs nach scroll erscheinen und ich möchte, dass sie auch zur eingestellten Zeit verschwinden.Funktion versteckt div nach der eingestellten Zeit nicht

// OUT 
 
$(function() { 
 
    $("[class*=outtime]").each(function() { 
 
     var retraso = parseInt($(this).attr("class").match(/outtime\d+/g)[0].replace("outtime","")); 
 
     setInterval("$('.outtime" + retraso + "').fadeOut(0)", retraso * 1000); 
 
    }); 
 
}); 
 

 
// IN 
 
$(function() { 
 
    $("[class*=intime]").each(function() { 
 
     var retraso = parseInt($(this).attr("class").match(/intime\d+/g)[0].replace("intime","")); 
 
     $(this).delay(retraso * 1000).fadeIn(0); 
 
    }); 
 
});
.cuadrado{ height:100px;width:100px; background:red;display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="cuadrado intime2 outtime3"> 
 
</div>

+0

können Sie .fadeTo (3000, 0) .fadeTo (1000,1) verwenden; – user2950720

+0

Es würde nicht funktionieren, wie ich brauche. –

+0

$ (Element) .fadeTo (3000,0); 3 Sekunden Dauer bis zur Opazität 0 (Ausblenden) – user2950720

Antwort

0

// OUT 
 
function fadeOut(){ 
 
    $("[class*=outtime]").each(function() { 
 
     var retraso = parseInt($(this).attr("class").match(/outtime\d+/g)[0].replace("outtime","")); 
 
     $(this).fadeTo(retraso*1000,0); 
 
    }); 
 
}; 
 

 
// IN 
 
function fadeIn(){ 
 
    $("[class*=intime]").each(function() { 
 
     var retraso = parseInt($(this).attr("class").match(/intime\d+/g)[0].replace("intime","")); 
 
     $(this).fadeTo(retraso*1000,1, function(){ 
 
     fadeOut(); 
 
     }); 
 
    }); 
 
}; 
 
fadeIn();
.cuadrado{ height:100px;width:100px; background:red;display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="cuadrado intime2 outtime3"> 
 
</div>

+0

Das ist gut, aber wie kann ich die Fade-Zeit auf 0 setzen? –

+0

wiederverwenden, was Sie vorher mit '$ (this) .delay (revaso * 1000) .fadeIn (0,, function() { fadeOut(); }));', Ich vermutete, Sie könnten der Übergang von Opazität – user2950720

1

$(document).ready(function() { 
 
    $(".cuadrado").each(function() { 
 
    var el = $(this); 
 
    var outtime = parseInt(el.attr("class").match(/outtime\d+/g)[0].replace("outtime", "")) * 1000; 
 
    var intime = parseInt(el.attr("class").match(/intime\d+/g)[0].replace("intime", "")) * 1000; 
 
    el.fadeTo(intime, 1).fadeTo(outtime, 0); 
 
    setInterval(function() { 
 
     el.fadeTo(intime, 1).fadeTo(outtime, 0); 
 
    }, outtime + intime); 
 
    }); 
 
});
.cuadrado { 
 
    height: 100px; 
 
    width: 100px; 
 
    background: red; 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="cuadrado intime2 outtime3"> 
 
</div>

+0

Das ist nicht, was ich brauche, können Sie es bei der Kommentare oben. Danke für die Beantwortung :) –

+0

um es zu stoppen wiederholen Sie die setInterval – user2950720

+0

Das Problem ist, ich möchte die // OUT-Funktion separat arbeiten, da es mit anderen Funktionen gemischt wird, die divs auf Bildlauf oder klicken. –

Verwandte Themen