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