SASS,为每个列表项设置延迟动画

SASS, animate each list items with a delay

正在寻找一个好的 mixin 以减少我的文件中的代码。动画非常简单,每个列表项在触发时都会从左侧滑入并延迟(每个元素)。 'transition' mixin 是一个基本的过渡(所有供应商)mixin。

.nav-main{

     li:nth-of-type(1) a{             

       @include transition( 0.5s linear 0.5s);

     }

     li:nth-of-type(2) a{


       @include transition( 0.5s linear 0.6s);

     } 

     li:nth-of-type(3) a{


       @include transition( 0.5s linear 0.7s);

     }

     li:nth-of-type(4) a{


       @include transition( 0.5s linear 0.8s);

     }

     li:nth-of-type(5) a{


       @include transition( 0.5s linear 0.9s);

     }

// and so on...

  }

您可以使用 for loop 来实现。

.nav-main{
  @for $i from 1 through 5 {
    li:nth-of-type(#{$i}) a {
      @include transition(0.5s linear (0.5s + ($i - 1) * 0.1s));
    }
  }
}

我准备的 mixin 在其他情况下可能会有用。

@mixin nthChildNav($item, $count) {
    $a-delay: 0.5s;
    $a-duration: 0.5s;

    @for $i from 1 through $count {
        #{$item}:nth-of-type(#{$i}) {
            a {
                @include transition($a-delay linear ($a-duration + ($i - 1) * 0.1));
            }
        }
        // @debug $i;
    }
}

.nav-main {
    @include nthChildNav(li, 5);
}

此致:)