Ich möchte hinzufügen und entfernen Sie eine CSS-Klasse n
mal eine Animation zu zeigen, um einen Effekt n
mal anzuzeigen, wie wenn Sie animation-iteration-count
setzen, ist der Unterschied, dass hier habe ich zwei Animationen, die zweite mit Verzögerung.Wie nimmst und entfernst du CSS-Klasse n mit setTimeout?
Meine Idee war, setTimeout
zu verwenden, also lese ich this Stack Overflow post, aber ich habe nicht die erwarteten Ergebnisse erhalten. Hier
ist ein Ausschnitt - und ein JSfiddle - mit der Animation (zeigt einmal)
$('button').click(function(){
$('div').addClass('a');
$(this).attr('disabled','true').text('Started');
setTimeout(function(){
$('div').removeClass('a');
$('button').removeAttr('disabled').text('Finished | Again');
},6000);
});
div {
width: 100px; height: 100px; background: red;
}
.a {
animation: a 2s linear, b 2s 2s linear;
}
@keyframes a {
from { background: red; }
to { background: blue; }
}
@keyframes b {
from { background: blue; }
to { background: black; }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
<button>Start</button>
Können Sie mehr ins Detail gehen über das, was Sie genau erreichen wollen? Wenn Sie möchten, dass ein setTimeout mehrere Male ausgeführt wird (wie in dem anderen Thread, den Sie verlinkt haben), müssen Sie es rekursiv aufrufen, was Sie hier nicht tun. – Damon
Im Gegensatz zu 'setInterval()' wird 'setTimeout()' nicht wiederholt und ich sehe nicht, dass 'setTimeout' irgendwas aufruft, was dazu führen würde, dass es einmal ausgeführt wird. – Fizz
@Damon ja, weil wie gesagt, ich habe nicht die erwarteten Ergebnisse erhalten. Ich möchte n mal eine Mehrfachanimation wiederholen und weiß nicht wie ich es machen soll. Ich habe "setTimeout" als Option erwähnt. Was ist der beste Weg, das zu tun? Vielen Dank! – nanilab