Derzeit habe ich diesen Code:
@-webkit-keyframes blinker {
from { opacity: 1.0; }
to { opacity: 0.0; }
}
.waitingForConnection {
-webkit-animation-name: blinker;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: cubic-bezier(.5, 0, 1, 1);
-webkit-animation-duration: 1.7s;
}
Es blinkt, aber es blinkt nur in "eine Richtung". Ich meine, es wird nur ausgeblendet, und dann erscheint es wieder mit opacity: 1.0
, dann wieder ausgeblendet, erscheint wieder und so weiter ...
Ich möchte, dass es ausgeblendet wird und dann von diesem Ausblenden wieder auf "angehoben" wird opacity: 1.0
. Ist das möglich?
html
css
css-animations
opacity
ojek
quelle
quelle
Antworten:
Sie stellen zuerst ein
opacity: 1;
und beenden es dann0
, sodass es beginnt0%
und endet. Setzen Sie100%
stattdessen einfach die Deckkraft auf0
at,50%
und der Rest kümmert sich um sich selbst.Demo
Hier stelle ich die Animationsdauer auf
1 second
und danntiming
auf einlinear
. Das heißt, es wird durchgehend konstant sein. Zuletzt benutze ichinfinite
. Das heißt, es wird weiter und weiter gehen.Wie bereits erwähnt, funktioniert dies in älteren Versionen von Internet Explorer nicht. Dazu müssen Sie jQuery oder JavaScript verwenden ...
Vielen Dank an Alnitak für den Vorschlag eines besseren Ansatzes .
Demo (Blinker mit jQuery)
quelle
blinker
als Abschlussrückruf für den.fadeIn
Anruf zu verzichten.(function blink() { $('.blink_me').fadeOut(500).fadeIn(500, blink); })();
step-end
stattdessenlinear
war was ich wollte.Verwenden Sie den
alternate
Wert füranimation-direction
(und Sie müssen auf diese Weise keine Keframes hinzufügen).CSS :
Ich habe den
from
Keyframe entfernt. Wenn es fehlt, wird es aus dem Wert generiert, den Sie für die animierte Eigenschaft (opacity
in diesem Fall) für das Element festgelegt haben, oder, wenn Sie es nicht festgelegt haben (und in diesem Fall nicht), aus dem Standardwert (welches ist1
füropacity
).Und bitte verwenden Sie nicht nur die WebKit-Version. Fügen Sie danach auch das nicht fixierte hinzu. Wenn Sie nur weniger Code schreiben möchten, verwenden Sie die Kurzform .
quelle
cubic-bezier
Teil durchease-in-out
oder etwas anderes ersetzen : cubic-bezier.comDer beste Weg, um einen reinen "100% ein, 100% aus" -Blink zu erhalten, wie der alte,
<blink>
ist folgender:quelle
color
Eigenschaften usw. Andere Dinge sind Problemumgehungen oder "Fade" -Animationen.Wenn Sie keinen schrittweisen Übergang zwischen Ein- und Ausblenden wünschen (z. B. einen blinkenden Textcursor), können Sie alternativ Folgendes verwenden:
Jeder
1s
.cursor
wird vonvisible
bis gehenhidden
.Wenn die CSS-Animation nicht unterstützt wird (z. B. in einigen Versionen von Safari), können Sie auf dieses einfache JS-Intervall zurückgreifen:
Dieses einfache JavaScript ist tatsächlich sehr schnell und in vielen Fällen sogar ein besserer Standard als das CSS. Es ist erwähnenswert, dass es viele DOM-Aufrufe sind, die JS-Animationen verlangsamen (z. B. JQuerys $ .animate ()).
Es hat auch den zweiten Vorteil, dass
.cursor
Elemente, die später hinzugefügt werden, immer noch genau zur gleichen Zeit animiert werden wie andere.cursor
s, da der Status gemeinsam genutzt wird. Dies ist meines Wissens mit CSS unmöglich.quelle
Ich weiß nicht warum, aber das Animieren nur der
visibility
Eigenschaft funktioniert in keinem Browser.Sie können die
opacity
Eigenschaft so animieren , dass der Browser nicht über genügend Frames verfügt, um den Text ein- oder auszublenden.Beispiel:
quelle
step-start
(siehe meine Antwort).Ändern Sie die Dauer und Deckkraft entsprechend.
quelle
Code-Snippet anzeigen
quelle
Spät, wollte aber einen neuen mit mehr Keyframes hinzufügen ... hier ist ein Beispiel für CodePen, da es ein Problem mit den integrierten Codefragmenten gab:
quelle
quelle
Es funktioniert bei mir mit class = blink für die jeweiligen Elemente verwendet wird.
Einfacher JS-Code
quelle