首页 > 其他分享 >CSS绘制无状态的音频波形图

CSS绘制无状态的音频波形图

时间:2023-11-08 10:22:04浏览次数:31  
标签:scale bar nth 音频 transform scaleY 波形图 animation CSS

效果

代码

这是从codepen参考过来的一段代码,自己diy了一下。可以根据需求修改显示的条数、宽度、颜色、跳动频率及幅度。

import React from 'react';
const SoundWave = () => {
   return (
      <div class="sound-wave">
         <div class="sound-bar"></div>
         <div class="sound-bar"></div>
         <div class="sound-bar"></div>
         <div class="sound-bar"></div>
         <div class="sound-bar"></div>
         <div class="sound-bar"></div>
         <div class="sound-bar"></div>
         <div class="sound-bar"></div>
         <div class="sound-bar"></div>
         <div class="sound-bar"></div>
      </div>
   );
};
export default SoundWave;
.sound-wave {
   display: flex;
   .sound-bar {
      /* bar的基础属性 */
      width: 2px;    /* 宽度 */
      height: 4px;   /* 基础高度 */
      background-color: #505861;  /* 颜色 */
      margin-right: 2px;
      transform: scaleY(1);
      animation-duration: 0.5s;
      animation-iteration-count: infinite;
      animation-direction: alternate;
      animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);


     /* 给不同的bar应用不同的动画,使跳动更有层次感 */
      &:nth-child(4n) {
         animation-name: bar-scale-xl;   
         animation-duration: 0.8 + 0.2s;  
      }
      &:nth-child(4) {
         animation-duration: 0.8 + 0.35s;
      }
      &:nth-child(3) {
         animation-name: bar-scale-lg;
         animation-duration: 0.8 + 0s;
      }
      &:nth-child(6) {
         animation-name: bar-scale-md;
         animation-duration: 0.8 + 0.05s;
      }

      &:nth-child(2),
      &:nth-child(5),
      &:nth-child(7),
      &:nth-child(9) {
         animation-name: bar-scale-sm;
         animation-duration: 0.9s;
      }
   }

   /* 定义不同跳动效果的动画 */ 
   @keyframes bar-scale-sm {
      0%,
      50% {
         transform: scaleY(1);
      }
      25% {
         transform: scaleY(6);
      }
      75% {
         transform: scaleY(4);
      }
   }

   @keyframes bar-scale-md {
      0%,
      50% {
         transform: scaleY(2);
      }
      25% {
         transform: scaleY(6);
      }
      75% {
         transform: scaleY(5);
      }
   }

   @keyframes bar-scale-lg {
      0%,
      50% {
         transform: scaleY(8);
      }
      25% {
         transform: scaleY(4);
      }
      75% {
         transform: scaleY(6);
      }
   }

   @keyframes bar-scale-xl {
      0%,
      50% {
         transform: scaleY(1);
      }
      25% {
         transform: scaleY(7);
      }
      75% {
         transform: scaleY(11);
      }
   }
}

标签:scale,bar,nth,音频,transform,scaleY,波形图,animation,CSS
From: https://www.cnblogs.com/sanhuamao/p/17816776.html

相关文章

  • 搜索文档树、bs4其他用法、css选择器、selenium基本使用、selenium其他用法
    搜索文档树#1find_all:找所有列表#2find找一个Tag类的对象find和find_allfrombs4importBeautifulSouphtml_doc="""<html><head><title>TheDormouse'sstory</title></head><body><pclass="title&......
  • 21 个最佳 Javascript IDE 和代码编辑器 [CSS、HTML、JavaScript]
    这是我们挑选的21个最佳JavaScriptIDE和源代码编辑器。目录什么是IDE选择正确的开发环境时要寻找什么?免费的最佳JavascriptIDE最佳高级JavascriptIDE结论:最佳JavaScriptIDE是哪个?常见问题解答:最佳JavascriptIDE如今,Javascript在前端开发中越来越流行。您......
  • ​​Android平台GB28181历史视音频文件回放规范解读及技术实现
     技术背景在实现GB28181历史视音频文件回放之前,我们已完成了历史视音频文件检索和下载,历史视音频回放,在GB28181平台非常重要,比如执法记录仪等前端设备,默认录像数据存储在前端设备侧,如果需要上传到平台统一保存,除了到工作站拷贝外,还可以通过GB28181的历史视音频文件下载到指挥中心......
  • 基础课-前端CSS
    CSS基础语法CSS的作用:让前端界面美化CSS代码的编写位置:1.嵌入编写:CSS代码可以嵌入中HTML一个特殊标记style里,style标记必须是head的子标记                   2.外部编写:CSS代码单独编写在后缀是.css文件中,如果某个HTML需要使用CSS代码文......
  • CSS3 实现动态旋转加载样式
    CSS3实现动态旋转加载样式要使用CSS3创建一个动态旋转加载样式,你可以使用CSS动画和旋转变换。下面是一个简单的示例:HTML:<divclass="loader"></div>CSS:.loader{width:50px;height:50px;border:4pxsolid#3498db;border-top:4pxsolidtransparent;......
  • CSS--属性、选择器
    CSS导入的三种方式 内联样式使用较少,内部样式和外部样式使用较多CSS选择器 元素选择器 id选择器 类选择器 ......
  • CSS选择器
    元素选择器/*使用元素选择器为所有段落元素应用样式*/p{color:blue;font-size:16px;text-align:center;margin:10px;padding:5px;background-color:#f0f0f0;}类选择器/*使用类选择器为具有类名"important"的元素应用样式*/.important{f......
  • CSS让子元素div的高度填满父容器的剩余空间的方法
    原帖:https://pythonjishu.com/unbayyjtzdjeewe/以下是详细讲解CSS让子元素div的高度填满父容器的剩余空间的方法的完整攻略。方法一:FlexboxFlexbox是一种强大的布局方式,使用起来非常方便。可以通过设置父元素的display属性为flex来开启flexbox布局,然后设置子元素的......
  • celery flower通过nginx部署 静态文件css js
    nginx添加以下配置  location/flower{proxy_passhttp://127.0.0.1:5555;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded......
  • 搜索文档树,bs4其它用法,css选择器,selenium基本使用,selenium其它用法
    1搜索文档树......