繁体   English   中英

如何使用Sass mixin过渡仅应用过渡延迟?

[英]How to use Sass mixin transition for applying transition-delay only?

在继续学习前端开发和练习Sass以及优化CSS代码的过程中,我又陷入了另一种情况。

在互联网上进行了研究和辅导后,我在Sass设置了名为“ transition ”的全局混合。 代码如下:

@mixin transition($args...) {
  -moz-transition: $args;
  -ms-transition: $args;
  -o-transition: $args;
  -webkit-transition: $args;
  transition: $args;
}

现在,我只想对我的span伪元素(:: before和:: after)应用transition-delay 默认CSS如下所示:

span::before, span::after {
  transition-delay: 0.5s, 0;
}

所以这是我的问题。 是否可以用我这个definied混入“ 过渡 ”只传递过渡延迟参数?

我努力了:

@include transition(delay: .5, 0s);

但这是行不通的。 我试图在Sass文档中找到解决方案,并在线找到一些教程,但是不走运。 不知道如何正确定义我的问题以寻找解决方案。

任何人都可以建议我吗?

您可以使用一种方法,将属性名称作为参数传递给mixin

@mixin transition($prop, $values...) {
  -moz-#{$prop}: $values;
  -ms-#{$prop}: $values;
  -o-#{$prop}: $values;
  -webkit-#{$prop}: $values;
  $prop: $values;
}

div {
  @include transition(transition, color 1s, background-color 1s, border-color 1s);
  /* transition shorthand property can animate multiple CSS properties */
}

p {
  @include transition(transition-delay, 0.5s)
}

可以编译以下CSS

div {
  -moz-transition: color 1s, background-color 1s, border-color 1s;
  -ms-transition: color 1s, background-color 1s, border-color 1s;
  -o-transition: color 1s, background-color 1s, border-color 1s;
  -webkit-transition: color 1s, background-color 1s, border-color 1s; }

p {
  -moz-transition-delay: 0.5s;
  -ms-transition-delay: 0.5s;
  -o-transition-delay: 0.5s;
  -webkit-transition-delay: 0.5s; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM