2013-12-10 18 views
5

私は、各ステップでtopを1ピクセルずつ増やす100ステップのキーフレームアニメーションを持っているとします。そのようなCSSを生成するためには、プログラムを使用するのが理にかなっています。SASSを使用してCSS3キーフレームステップを動的に生成するにはどうすればよいですか?

@keyframes animation 
{ 
    0% {top:0px;} 
    1% {top:1px;} 
    2% {top:2px;} 
    ... 
    99% {top:99px;} 
    100% {top:100px;} 
} 

これはJSで簡単に行うことができますが、私はSASSで行う方法があるかどうかを知りたいと思います。

私が今いる主な問題は、ステップセレクタ(1%、2%、3%など)を動的に生成する方法を見つけることができなかったことです。

私は#{string}構文を試してみましたが、割合セレクタで使用される場合には、例えば、無効な構文エラーが生成されます:

$num: 100; 

@keyframes animation 
{ 
    #{num}% {top:0px;} 

} 

正しくこれを行う方法上の任意のアイデアをいただければ幸いです。

+0

グレート質問 - まだ私はあなたが線形アニメーションの100のキーフレーム、0%と100%を必要としないための例は、悪いだと思いますここでも同じことを達成するには十分でしょう。 – Andy

答えて

8

%変数を生成してから、値全体を文字列として出力してください。あなたが使用できるようにSASSは、パーセント単位の間で番号操作を処理$変数i

@keyframes manySteps { 
    @for $i from 0 through 100 { 
    $percent: 0% + $i; 
    #{$percent} { top: 1px; } 
    } 
} 
+2

優れた答え、ありがとうございます。 –

関連する問題