纯CSS实现跑马灯效果,CSS动画知识是该补一补了

前言

最近看一个网站的时候,发现一个效果类似于广告灯的感觉,挺不错的,于是就想用纯CSS来实现这个效果,顺便提升一下自己的CSS动画技能。

纯CSS实现跑马灯效果,CSS动画知识是该补一补了_第1张图片

分析

我们先分析怎么做的,这个效果分成两个部分:

  • 上层:真正动画的层级
  • 下层:充当一个底色

然后他们通过绝对定位叠在一起。

纯CSS实现跑马灯效果,CSS动画知识是该补一补了_第2张图片

可以看到,动画没开始前,页面是这样的,可以理解这是一个底色下层,铺在下面,让每一个圆都有一个轮廓。

纯CSS实现跑马灯效果,CSS动画知识是该补一补了_第3张图片

动画上层开始的时候,下层是不变的,一直保持底色。

纯CSS实现跑马灯效果,CSS动画知识是该补一补了_第4张图片

开始写页面

页面





  
  
  Document
  



  
30个span。。
30个span。。

现在能看到已经把两层叠在了一起。

纯CSS实现跑马灯效果,CSS动画知识是该补一补了_第5张图片

动画

接下来让 high 这一层开始动画

.high span {
      /* 动画名 */
      animation-name: myAnimation;
      /* 动画时长 */
      animation-duration: 1s;
      /* 无限循环 */
      animation-iteration-count: infinite;
      background-color: #AEF731;
    }
    @keyframes myAnimation {
      0% {
        transform: scale(0);
        opacity: 0;
      }

      100% {
        transform: scale(1);
        opacity: 1;
      }
    }

现在就有动画效果了

图片

但是我们可以看到刚刚我们想要的效果,他是中间先变,四周再变的

纯CSS实现跑马灯效果,CSS动画知识是该补一补了_第6张图片

所以我们需要使用到动画延迟,也就是

animation-delay这个样式属性

.delay-1 {
      animation-delay: 0.1s;
    }
    .delay-2 {
      animation-delay: 0.2s;
    }
    .delay-3 {
      animation-delay: 0.3s;
    }
    .delay-4 {
      animation-delay: 0.4s;
    }

这就达到了我们想要的效果啦~~~

图片

代码总览

纯CSS实现跑马灯效果,CSS动画知识是该补一补了_第7张图片

你可能感兴趣的:(css,前端)