SCSS的关键帧动画无法正常工作

dcp*_*ret 2 css jquery animation keyframe

我是关键帧动画的新手,经过一些搜索,这篇文章似乎是一个很好的起点.

这是codepen中的文章代码 - http://codepen.io/anon/pen/yYPxJM

@mixin keyframes($animation-name) {
  @-webkit-keyframes $animation-name {
    @content;
  }
  @-moz-keyframes $animation-name {
    @content;
  }  
  @-ms-keyframes $animation-name {
    @content;
  }
  @-o-keyframes $animation-name {
    @content;
  }  
  @keyframes $animation-name {
    @content;
  }
}

@mixin animation($str) {
  -webkit-animation: #{$str};
  -moz-animation: #{$str};
  -ms-animation: #{$str};
  -o-animation: #{$str};
  animation: #{$str};      
}

@include keyframes(slide-down) {
  0% { opacity: 1; }
  90% { opacity: 0; }
}

.element {
  width: 100px;
  height: 100px;
  background: black;
  @include animation('slide-down 5s 3');
}
Run Code Online (Sandbox Code Playgroud)

但是,它不能"按原样"工作,我不知道如何继续.

当我向下滚动页面时,我将成为动画对象.例如,将一些动画设置为淡入,其他设置为缩放(调用动作)以使其弹出.jQuery应该不是问题,正是这些动画导致了我的问题.

愿意帮助理解我做错了什么.

提前致谢!

hal*_*bra 12

您必须使用插值:#{},因此您$animation-name不会被视为CSS.

这是我最喜欢的关于此事的文章:所有你需要知道的Sass插值

请看一下代码:

@mixin keyframes($animation-name) {
  @-webkit-keyframes #{$animation-name} {
    @content;
  }
  @-moz-keyframes #{$animation-name} {
    @content;
  }  
  @-ms-keyframes #{$animation-name} {
    @content;
  }
  @-o-keyframes #{$animation-name} {
    @content;
  }  
  @keyframes #{$animation-name} {
    @content;
  }
}

@mixin animation($str) {
  -webkit-animation: #{$str};
  -moz-animation: #{$str};
  -ms-animation: #{$str};
  -o-animation: #{$str};
  animation: #{$str};      
}

@include keyframes(slide-down) {
  0% { opacity: 1; }
  90% { opacity: 0; }
}

.element {
  width: 100px;
  height: 100px;
  background: black;
  @include animation('slide-down 5s 3');
}
Run Code Online (Sandbox Code Playgroud)