js+css实现麦克风声音输入blob可视化动画效果代码

代码语言:html

所属分类:多媒体

代码描述:js+css实现麦克风声音输入blob可视化动画效果代码,点击播放按钮,然后说话试试

代码标签: js css 麦克风 声音 输入 blob 可视化 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  

  
  
<style>
@property --s1 {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

@property --s2 {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

@property --s3 {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

@property --rotation {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

@property --depth {
    syntax: '<number>';
    inherits: false;
    initial-value: 0.3;
}

body {
    margin: 0;
    padding: 0;
    min-height: 100dvh;
    width: 100dvw;
    display: flex;
    flex-direction: column;
    gap: 4px;
    justify-content: center;
    align-items: center;
    background: #E4E4E4;
}

@keyframes s1 {
    to {
        --s1: 360deg;
    }
}

@keyframes s2 {
    to {
        --s2: 360deg;
    }
}

@keyframes s3 {
    to {
        --s3: 360deg;
    }
}

@keyframes rotation {
    to {
        --rotation: 360deg;
    }
}

@keyframes rotateouter {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/* Blob Animation */
.blob {
    aspect-ratio: 1;
    width: min(220px, 50vw);
    background-color: black;
    --rotation: 0deg;
    overflow: hidden;
    animation:
        s1 3s linear infinite,
        s2 5s linear infinite,
        s3 7s linear infinite,
        rotation 21s linear infinite;
}

.blob-shape {
    /* Animated blob shape using CSS @property */
    --angle0: 0.00deg;
    --p1-0: 0.0deg;
    --p2-0: 0.0deg;
    --p3-0: 0.0deg;
    --angle1: 51.43deg;
    --p1-1: 137.5deg;
    --p2-1: 222.5deg;
    --p3-1: 360.1deg;
    --angle2: 102.86deg;
    --p1-2: 275.0deg;
    --p2-2: 85.0deg;
    --p3-2: 80.2deg;
    --angle3: 154.29deg;
    --p1-3: 52.5deg;
    --p2-3: 307.5deg;
    --p3-3: 200.3deg;
    --angle4: 205.71deg;
    --p1-4: 190.0deg;
    --p2-4: 170.0deg;
    --p3-4: 320.4deg;
    --angle5: 257.14deg;
    --p1-5: 327.5deg;
    --p2-5: 32.5deg;
    --p3-5: 80.5deg;
    --angle6: 308.57deg;
    --p1-6: 105.0deg;
    --p2-6: 255.0deg;
    --p3-6: 200.6deg;
    
    /* Calculate control points for blob shape */
    --rand0: calc(0.5 + 0.5 * (0.5 * sin(var(--s1) + var(--p1-0)) + 0.3 * sin(var(--s2) + var(--p2-0)) + 0.2 * sin(var(--s3) + var(--p3-0))));
    --d0: calc(50 * (1 - var(--depth)) + 50 * var(--rand0) * var(--depth));
    --x0: calc((50 + var(--d0) * cos(var(--rotation) + var(--angle0))) * 1%);
    --y0: calc((50 + var(--d0) * sin(var(--rotation) + var(--angle0))) * 1%);
    
    --rand1: calc(0.5 + 0.5 * (0.5 * sin(var(--s1) + var(--p1-1)) + 0.3 * sin(var(--s2) + var(--p2-1)) + 0.2 * sin(var(--s3) + var(--p3-1))));
    --d1: calc(50 * (1 - var(--depth)) + 50 * var(--rand1) * var(--depth));
    --x1: calc((50 + var(--d1) * cos(var(--rotation) + var(--angle1))) * 1%);
    --y1: calc((50 + var(--d1) * sin(var(--rotation) + var(--angle1))) * 1%);
    
    --rand2: calc(0.5 + 0.5 * (0.5 * sin(var(--s1) + var(--p1-2)) + 0.3 * sin(var(--s2) + var(--p2-2)) + 0.2 * sin(var(--s3) + var(--p3-2))));
    --d2: calc(50 * (1 - var(--depth)) + 50 * var(--rand2) * var(--depth));
    --x2: calc((50 + var(--d2) * cos(var(--rotation) + var(--angle2))) * 1%);
    --y2: calc((50 + var(--d2) * sin(var(--rotation) .........完整代码请登录后点击上方下载按钮下载查看

网友评论0