Skip to content
On this page

@keyframes

Stylus 支持带大括号或不带大括号的 @keyframes,你还可以在 @keyframes 的名称或步骤中使用插值:

stylus
$keyframe-name = pulse
@keyframes {$keyframe-name}
  for i in 0..10
    {10% * i}
      opacity (i/10)
$keyframe-name = pulse
@keyframes {$keyframe-name}
  for i in 0..10
    {10% * i}
      opacity (i/10)

生成(省略了扩展的前缀):

css
@keyframes pulse {
  0% {
    opacity: 0;
  }
  20% {
    opacity: 0.2;
  }
  40% {
    opacity: 0.4;
  }
  60% {
    opacity: 0.6;
  }
  80% {
    opacity: 0.8;
  }
  100% {
    opacity: 1;
  }
}
@keyframes pulse {
  0% {
    opacity: 0;
  }
  20% {
    opacity: 0.2;
  }
  40% {
    opacity: 0.4;
  }
  60% {
    opacity: 0.6;
  }
  80% {
    opacity: 0.8;
  }
  100% {
    opacity: 1;
  }
}

扩展

通过使用 @keyframes,你的规则将自动扩展到由 vendors 变量定义的供应商前缀(默认为 moz webkit o ms official)。这意味着我们可以随时更改它,扩展效果会立即生效。

注意,在我们到达 Stylus 1.0 时,@keyframes 到带前缀的 at-rules 的扩展将被移除

例如,考虑以下情况:

css
@keyframes foo {
  from {
    color: black
  }
  to {
    color: white
  }
}
@keyframes foo {
  from {
    color: black
  }
  to {
    color: white
  }
}

这将扩展到我们的三个默认供应商,以及官方语法:

css
@-moz-keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@-webkit-keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@-o-keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@-moz-keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@-webkit-keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@-o-keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}

如果我们只想使用官方语法,只需简单地更改 vendors

stylus
vendors = official

@keyframes foo {
  from {
    color: black
  }
  to {
    color: white
  }
}
vendors = official

@keyframes foo {
  from {
    color: black
  }
  to {
    color: white
  }
}

生成:

css
@keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}
@keyframes foo {
  from {
    color: #000;
  }
  to {
    color: #fff;
  }
}

Released under the MIT License.