0

まず、私の数学の知識はかなり限られていることを警告させてください(したがって、これについて質問するためにここに来ます)。

これはばかげた例ですが、私が本質的に望んでいるのは、可変数の行を持ち、最大値を設定できるようにすることです。次に、各プログレッシブ行について、途中までその値を減らし、その時点で値を再び増やし始めます。最終行までの最大値。

これを説明するために...とするmaxValue = 20rows = 5、行の値について次の値を取得できる必要があります(はい、0でも)。

row 1: 20
row 2: 10
row 3: 0
row 4: 10
row 5: 20

SASSを使用するCompassでこれを実行しようとしているため、制限があります。利用可能な操作についてはこちらをご覧くださいが、その要点を説明するために、基本的な操作のみを利用できます。

行をループすることができるので、シリーズの個々の行ごとに機能する計算が必要です。これは私が使用できる種類のループです:

$maxValue:20;
$rows:5;

@for $i from 1 through $rows {
    // calculation here.
}
4

1 に答える 1

2

これまでSASSを実際に使用したことはありませんが、基本的なifとfloor関数を使用してこのようなことを試してみてください。うまくいくかどうかはわかりません

// set various variables
$maxValue:20;
$rows:5;
// get row number before middle row, this instance it will be 2
$middleRow = floor( $maxValue / $rows )
// get increment amount, this instance should be 10
$decreaseValue = ( max / floor( rows / 2) )

@for $i from 0 through $rows - 1 {

   @if $i <= $middleRow {

      ( $maxValue- ( $decreaseValue * $i ) )

    }

   @else{

    // times by -1 to make positive value
       ( $maxValue - ( $decreaseValue * -$i ) ) * -1

    }
}

上記をjsで(相対構文で)テストしたところ、必要な結果が得られました(jsBinの例)。お役に立てれば

于 2012-11-28T14:24:10.627 に答える