CSS glatte bounce-animation
Ich brauchte, um zu realisieren unendliche bounce-Effekt mit reinem CSS, also bezog ich mich diese Website und endete damit, dass diese.
CSS:
.animated {
-webkit-animation-duration: 2.5s;
animation-duration: 2.5s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
animation-iteration-count: infinite;
-webkit-animation-iteration-count: infinite;
}
@-webkit-keyframes bounce {
0%, 20%, 40%, 60%, 80%, 100% { -webkit-transform: translateY(0);}
50% { -webkit-transform: translateY(-5px);}
}
@keyframes bounce {
0%, 20%, 40%, 60%, 80%, 100% {transform: translateY(0);}
50% {transform: translateY(-5px);}
}
.bounce {
-webkit-animation-name: bounce;
animation-name: bounce;
}
#animated-example {
width: 20px;
height: 20px;
background-color: red;
position: relative;
top: 100px;
left: 100px;
border-radius: 50%;
}
hr {
position: relative;
top: 92px;
left: -300px;
width: 200px;
}
HTML:
<div id="animated-example" class="animated bounce"></div>
<hr>
Nun, mein problem ist nur das bouncing-element nimmt eine längere Pause, bevor es beginnt Prellen wieder. Wie kann ich machen, hüpfen reibungslos, genau wie die bounce-Effekt wir durch den Einsatz jQuery.animate
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lange Pause dazwischen ist aufgrund Ihrer keyframe-Einstellungen. Ihre aktuelle keyframe-Regeln bedeuten, dass die tatsächliche bounce passiert nur zwischen 40% - 60% der Animations Dauer (das heißt, zwischen 1s - 1,5 s mark von der animation). Entfernen Sie diese Regeln und vielleicht sogar reduzieren die
animation-duration
an Ihre Bedürfnisse anpassen.CSS:
HTML:
Hier ist, wie Ihre ursprüngliche
keyframe
- Einstellungen werden vom browser interpretiert:translate
von 0px in der Y-Achse.translate
von 0px in der Y-Achse.translate
von 0px in der Y-Achse.translate
von 5px in der Y-Achse. Dies führt zu einer allmählichen Aufwärtsbewegung.translate
von 0px in der Y-Achse. Dies führt zu einer allmählichen Abwärtsbewegung.translate
von 0px in der Y-Achse.translate
von 0px in der Y-Achse.Hier ist der code nicht mit dem Prozentsatz in der keyframes.
Wegen der Verwendung von Prozentsätzen der animation nichts tut, eine lange Zeit.
Wie funktioniert dieses Beispiel:
animation
. Dies ist ein kurzer hand für die Eigenschaften der animation.from
undto
in der keyframes. aus = 0% und zu ist = 100%animation: bounce 1s infinite alternate;
den 1er ist, wie lange die animation dauern wird.CSS:
HTML:
Fall, dass Sie bereits mithilfe der transform-Eigenschaft für die Positionierung Ihrer Elemente (wie ich derzeit bin), können Sie auch animieren, den oberen Rand: