【问题标题】:How to use Sass mixin transition for applying transition-delay only?如何使用 Sass mixin 转换仅应用转换延迟?
【发布时间】:2016-10-09 23:08:55
【问题描述】:

当我继续学习前端开发和练习 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;
}

所以这是我的问题。是否可以使用我这个定义的 mixin 'transition' 只传递转换延迟作为参数?

我试过了:

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

但这不起作用。我试图在 Sass 文档中找到解决方案并在网上找到一些教程,但没有运气。不知道如何正确定义我的问题以寻找解决方案。

谁能给我建议?

【问题讨论】:

    标签: css sass css-transitions


    【解决方案1】:

    您可以使用将属性名称作为参数传递给 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; }
    

    【讨论】:

    • 男人,我爱你!这个解决方案太棒了。谢谢你:)
    猜你喜欢
    • 2018-10-19
    • 2020-12-22
    • 1970-01-01
    • 2015-12-05
    • 2015-04-18
    • 2016-07-24
    • 1970-01-01
    • 2016-11-15
    • 2014-07-07
    相关资源
    最近更新 更多