このサンプルを検討してください。CSSは左から右に絶対配置でdivをアニメートします
<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>
http://jsfiddle.net/dfabulich/ncbzz5zu/3/期待:赤から青に色が変化するように左から右に赤い長方形がスムーズアニメートすべきです。
実際のところ:Chrome/Firefoxでは、赤い四角形がゆっくりと色が紫色に変わり、次に左から右に移動しないでテレポートしてから紫色から青色にゆっくりと変化します。 Safariでは、矩形が右に表示され、そこから移動することはありませんが、赤から青にアニメーションが適用されます。
どうしてですか?どうすれば修正できますか? (私はCSSでそれを修正する必要が...ないJS、ノーjQueryの。)
1つの_property_から別の_property_に「アニメーション化」することはできません。プロパティの_value_をアニメートします。この場合、要素の幅が20%の場合、左に0〜80%のアニメーションを付けるだけです。 – CBroe