webgl+canvas浏览器中自动生成音乐可视化效果代码
代码语言:html
所属分类:多媒体
代码描述:webgl+canvas浏览器中自动生成音乐可视化效果代码,使用webkitAudioContext来弹奏生成播放音乐。
代码标签: webgl canvas 浏览器 自动 生成 音乐 可视化
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
:root {
--clr-fg: #fff7;
--clr-active-fg: #fff9;
}
html,
body {
margin: 0;
padding: 0;
}
canvas {
position: fixed;
z-index: -2;
width: 100%;
height: auto;
inset: 0;
user-select: none;
}
.control {
display: grid;
place-content: center;
position: absolute;
width: 200px;
height: 200px;
inset: 0;
margin: auto;
}
.control_label {
opacity: 0;
display: grid;
place-content: center;
transition: opacity 1200ms cubic-bezier(0.075, 0.82, 0.165, 1);
}
.control.initial .control_label {
opacity: 1;
}
.control:hover .control_label {
opacity: 1;
}
.control_display,
.control_input {
grid-row: 1/-1;
grid-column: 1/-1;
position: relative;
cursor: pointer;
}
.control_display {
display: grid;
place-content: center;
font-size: 0.825em;
font-weight: 500;
}
.control_display svg {
--duration: 50ms;
display: inline-block;
stroke-linejoin: round;
stroke-width: 2px;
fill: var(--clr-fg);
transition: var(--duration);
transform: scale(1.1);
}
.control_display svg .speaker-vol {
stroke-linecap: round;
}
.control_display svg .speaker-on {
fill: none;
stroke: none;
opacity: 0;
transition: opacity var(--duration);
}
.control_label:has([type="checkbox"]:checked) svg {
fill: var(--clr-active-fg);
}
.control_label:has([type="checkbox"]:checked) svg .speaker-on {
opacity: 1;
fill: var(--clr-active-fg);
}
input[type="checkbox"] {
-webkit-appearance: none;
appearance: none;
background-color: transparent;
position: relative;
margin: 0;
width: 6em;
height: 6em;
transform: scale(1);
font: inherit;
color: currentColor;
border-width: 0.15rem;
border-style: solid;
border-radius: 50%;
border-color: var(--clr-fg);
display: grid;
place-content: center;
background: #11111199;
box-shadow: 0px 0px 12px 0 #a5a5a5;
}
input[type="checkbox"]:hover {
transform: scale(1.1);
transition: 300ms cubic-bezier(0.075, 0.82, 0.165, 1);
}
input[type="checkbox"]:is(:checked, :active),
input[type="checkbox"]:is(:checked, :active) + .control_display svg {
transform: scale(1);
}
input[type="checkbox"]::after {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
box-shadow: 0 2px 5px 2px #fff9, 0 2px 10px 10px #fff7, 0 2px 20px 20px #fff5;
opacity: 0;
transform: scale(0.95);
transition: 400ms;
}
input[type="check.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0