如何使用Stylus功能创建多个框阴影(来自Sass)

时间:2015-06-16 12:05:35

标签: css stylus box-shadow css-preprocessor

我发现SASS功能适用于" starry sci"创建:

// n is number of stars required
@function multiple-box-shadow ($n) 
  $value: '#{random(2000)}px #{random(2000)}px #FFF'
  @for $i from 2 through $n
    $value: '#{$value} , #{random(2000)}px #{random(2000)}px #FFF'

  @return unquote($value)

#stars{
    box-shadow: multiple-box-shadow(700)
}

我想将它转换为Stylus,但有些东西不起作用。我试试:

random(min, max)
  return floor( math(0, "random") * max + min )

$coordinates = random(1, 2000)px 
$distortion = random(1, 20)px

// n is number of stars required
multiple-box-shadow($n)
  for $i in (1..$n)
    $value = $coordinates  $coordinates $distortion $distortion  #FFFFFF,
    return $value

#stars
    box-shadow multiple-box-shadow(700)

random fucntion只运行一次,box-shadow值只添加一次... 有人可以帮忙吗?

Codepen snippet allow to view compiled css immediately

2 个答案:

答案 0 :(得分:0)

类似的东西:

random(min, max)
  return floor(math(0, 'random') * max + min)

multiple-box-shadow($n)
  $value = '%spx %spx #FFF' % (random(1, 2000) random(1, 2000))
  for $i in 2..$n
    $value += ', %spx %spx #FFF' % (random(1, 2000) random(1, 2000))

  return unquote($value)

#stars
  box-shadow: multiple-box-shadow(700)

答案 1 :(得分:0)

我的同事建议我:



random(min, max)
  return floor( math(0, "random") * max + min )

// n is number of stars required
multiple-box-shadow($n)
  $coordinates = random(1, 2000)px 
  $distortion = random(1, 20)px
  $value = $coordinates $coordinates $distortion $distortion  #FFFFFF
  for $i in (2..$n)
    $coordinates = random(1, 2000)px 
    $distortion = random(1, 20)px
    $value = $value, $coordinates $coordinates $distortion $distortion  #FFFFFF
  return $value