纯css 制作音谱跳动效果

来源:互联网 发布:风暴大陆升阶数据 编辑:程序博客网 时间:2024/05/21 09:10

在一个网站上看到“直播中”的提示标题,有趣的是文字之前有一个图表,是一个上下跳动的类似于音乐的效果,起初笔者以为是一个gif图片,准备保存下来留用。但审查元素之后发现这是通过CSS3纯代码实现的,顿时觉得很强大,于是就扒下代码研究了一番。

利用CSS3制作跳动音乐频谱跳动效果

通过CSS3新增的动画属性animation,经过一番配置之后可以得到类似音乐频谱跳动的效果。

利用CSS3制作跳动音乐频谱跳动效果

查看demo效果  DEMO

如果只是作为一个“图标”效果的话,这样做有些小题大做了,一张gif可以搞定的事情没必要大费周章写css。不过这却又是一个特别好的案例,我们可以通过它来对CSS3动画属性做进一步的了解,毕竟目前CSS3在国内的使用程度还不算太高。

贴出主要代码如下:

html部分

  1. <div class="wrap">
  2.  <ul class="music">
  3.  <li class="m1"></li>
  4.  <li class="m2"></li>
  5.  <li class="m3"></li>
  6.  <li class="m1"></li>
  7.  <li class="m2"></li>
  8.  <li class="m3"></li>
  9.  </ul>
  10.  </div>

CSS部分

  1. *{
  2. margin: 0;
  3. padding: 0;
  4. border: 0;
  5.  }
  6.  .wrap{
  7. width: 260px;
  8. height: 150px;
  9. margin:50px auto 0;
  10. background-color: rgba(0,0,0,.5);
  11. position: relative;
  12.  }
  13.  .wrap ul{
  14. position: absolute;
  15. bottom: 0px;
  16. display: inline-block;
  17. vertical-align: baseline;
  18. font-size: 0;
  19.  }
  20.  .wrap ul li{
  21. background-color: #fff;
  22. margin-left: 20px;
  23. display: inline-block;
  24. width: 20px;
  25. height: 120px;
  26.  }
  27.  .m1{
  28.  -webkit-animation: .8s .1s living linear infinite backwards normal;
  29. animation: .8s .1s living linear infinite backwards normal;
  30.  -webkit-animation-delay: -1.1s;
  31.  }
  32.  .m2{
  33.  -webkit-animation: .8s .3s living linear infinite backwards normal;
  34. animation: .8s .3s living linear infinite backwards normal;
  35.  -webkit-animation-delay: -1.3s;
  36.  }
  37.  .m3{
  38.  -webkit-animation: .8s .6s living linear infinite backwards normal;
  39. animation: .8s .6s living linear infinite backwards normal;
  40.  -webkit-animation-delay: -1.6s;
  41.  }
  42.  @-webkit-keyframes living{
  43.  0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0120px;transform-origin:0 120px}
  44.  50%{-webkit-transform:scaleY(.3);transform:scaleY(.3);-webkit-transform-origin:0120px;transform-origin:0 120px}
  45.  100%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0120px;transform-origin:0 120px}
  46.  }
  47.  @keyframes living{
  48.  0%{-webkit-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 120px;-ms-transform-origin:0 120px;transform-origin:0 120px}
  49.  50%{-webkit-transform:scaleY(.3);-ms-transform:scaleY(.3);transform:scaleY(.3);-webkit-transform-origin:0 120px;-ms-transform-origin:0 120px;transform-origin:0 120px}
  50.  100%{-webkit-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 120px;-ms-transform-origin:0 120px;transform-origin:0 120px}
  51.  }

以上就是本文的全部内容了,不得不说CSS3真的非常强大,想要掌握不下功夫是不行的。另外也希望国内的前端工程师们多多使用CSS3新属性,将更高效、更绚丽的前端页面呈现给我们。

文章出自 雅兮网  http://www.iyaxi.com/2017-06-07/1438.html