Betrachten Sie dieses Beispiel.CSS animieren ein Div mit absoluter Positionierung von links 0 nach rechts 0
http://jsfiddle.net/dfabulich/ncbzz5zu/3/
<html>
<body>
<style>
.container {
position: relative;
width: 80%;
height: 100px;
border: 1px solid black;
}
@keyframes slide {
from { background-color: red; left: 0; }
to { background-color: blue; right: 0; }
}
.animated {
position: absolute;
width: 20%;
height: 100%;
top: 0;
background-color: red;
animation-duration: 3s;
animation-name: slide;
animation-iteration-count: infinite;
}
</style>
<div class=container>
<div class=animated>
</div></div>
Erwartet: Das rote Rechteck sollte glatt von von Rot nach Blau nach rechts, wie die Farbe ändert sich links animieren.
Tatsächlich: In Chrome/Firefox ändert das rote Rechteck langsam seine Farbe in Violett, teleportiert dann von links nach rechts, ohne zu animieren, und wechselt dann langsam von lila zu blau. In Safari erscheint das Rechteck auf der rechten Seite und bewegt sich nie von dort, während es von rot nach blau animiert wird.
Warum passiert das? Wie kann ich es reparieren? (Ich brauche es in CSS zu beheben ... kein JS, keine jQuery.)
Sie können nicht von einer _property_ zu einer anderen "animieren"; Sie animieren den _value_ einer Eigenschaft. In diesem Fall könntest du, wenn das Element 20% breit ist, einfach von 0 bis 80% animieren. – CBroe