私は比較的単純なもの、JSFiddle hereにある短いアニメーションの大量のコードを持っていますが、私が書いたコードには失望しています。少し違うことをするために何度も自分自身を繰り返さなければならなかったので、それはもっと短くなる可能性がある、または少なくともそうあるべきだと思います:
HTML:
<div class="movement">
<div class="mover x1 back"></div>
<div class="mover x2 front"></div>
<div class="mover x3 back"></div>
<div class="mover x4 front"></div>
<div class="mover x5 back"></div>
<div class="mover x6 front"></div>
</div>
CSS:
.mover {
position: absolute;
width: 200px;
height: 20px;
background: black;
-webkit-animation: animato 18s linear infinite;
-moz-animation: animato 18s linear infinite;
-o-animation: animato 18s linear infinite;
animation: animato 18s linear infinite;
}
...
.x1 {
right: 30%;
top: 90px;
-webkit-animation-delay: -3s;
-moz-animation-delay: -3s;
-o-animation-delay: -3s;
animation-delay: -3s;
}
.x2 {
right: 45%;
top: 130px;
-webkit-transform: scale(0.6);
-moz-transform: scale(0.6);
-o-transform: scale(0.6);
transform: scale(0.6);
opacity: 0.6;
-webkit-animation-delay: -6s;
-moz-animation-delay: -6s;
-o-animation-delay: -6s;
animation-delay: -6s;
}
... for each and every moving object, up to x6
私が本当にやりたいことは、スクロールする 6 つの移動オブジェクトを作成できる子 div タグのない 1 つのコンテナー div (上記の HTML の class="movement") だけを持つことです。また、各ルールの遅延時間/スケールを変更するためだけに -vendor-animation-delay または -vendor-transform を繰り返す必要がないことも素晴らしいことです。私が見逃したコードのより良いリファクタリングがありますか、それとも CSS を使用してこの効果を達成するために、すべての div でこれを繰り返す必要がありますか?