CSS文字特效:连续光影变化

67 阅读1分钟

使用animation-delay属性配合scss预处理器循环,制作文字连续光影变化效果。

screenshots.gif

代码如下

<div>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>

</div>
$begin-color:#333;
$end-color:#eead0c;
span{
  color:$begin-color;
  animation: colorChange 1s ease-in-out infinite alternate;
}



@keyframes colorChange {
  to{
    color: $end-color;
  }
}
//10个文字,从1到10循环,包含结束值10
@for $i from 1 through 10{
  span:nth-child(#{$i}){
    animation-delay: ($i - 1)*0.2s;
  }
}
////10个文字,从1到10循环,不包含结束值11
//@for $i from 1 to 11{
//  span:nth-child(#{$i}){
//    animation-delay: ($i - 1)*0.2s;
//  }
//}


涉及知识点

  • scss变量声明:$begin-color:#333;
  • animation属性的ease-in-out代表动画效果从慢到快再到慢
  • scss循环:@for $i from 开始值 through 结束值 through包含结束值
  • scss循环如果不包含结束值语法:@for $i from 开始值 to 结束值
  • #{$i} 插值语句将变量包裹,避免运算
  • ($i - 1):使用变量与括号,可运算