Sagen wir, ich habe ein HTML-Element, das mit Transparenz rot ist. Wenn ich das Element schwenke, sollte es ein solides Rot werden. Wenn ich das Element nicht mehr schwebe, sollte es in den ersten Zustand zurückkehren, aber erst nach X Sekunden.CSS-Animation, Hintergrund im Schwebeflug einblenden, bleiben und nach einer Verzögerung zum vorherigen zurückkehren
So weit so gut, siehe Code-Schnipsel.
Mein Problem ist, wenn ich höre, das Element zu schweben und dann zurück zu schweben. Die anfängliche Animation beginnt erneut, aber es wurde noch keine Animation zum Anfangszustand gestartet und daher gibt es einen unschönen Sprung von Vollfarbe zu Transparenz und dann zu Vollfarbe.
Gibt es eine Möglichkeit, dies ohne JavaScript zu lösen?
Dann, indem Sie den Hintergrund des div auf die Vollfarbe setzen die Farbe, wenn nicht schwebend gehalten wird. Aber es setzt es auch auf die Anfangsfarbe. Wie kann ich das lösen? Entfernen entfernt nur die Farbe, wenn Sie nicht schweben!
Opazität mit einem Übergang ist keine Option, da ich Inhalt in diesem Div haben.
div {
width: 100px;
height: 100px;
background: rgba(50, 60, 95, 1);
animation-name: fadeItOut;
animation-duration: 1s;
animation-delay: 2s;
animation-fill-mode: forwards;
}
div:hover {
animation-name: fadeItIn;
animation-duration: 1s;
animation-delay: 0s;
animation-fill-mode: forwards;
}
@keyframes fadeItIn {
0% {
background: rgba(50, 60, 95, 0.3);
}
100% {
background: rgba(50, 60, 95, 1);
}
}
@keyframes fadeItOut {
0% {
background: rgba(50, 60, 95, 1);
}
100% {
background: rgba(50, 60, 95, 0.3);
}
}
<div></div>
Sorry, ich völlig den Punkt verpasst haben, aber warum nicht einfach tun, [diese] (https://jsfiddle.net/ nwvkzsvw /)? – Harry