js+css实现逼真拟物声音均衡器滑竿拖动调节数值效果代码

代码语言:html

所属分类:拖放

代码描述:js+css实现逼真拟物声音均衡器滑竿拖动调节数值效果代码

代码标签: js css 逼真 拟物 声音 均衡器 滑竿 拖动 调节 数值

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

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

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

  
  
  
<style>
@font-face {
	font-family: "Alarm Clock";
	src: url("//repo.bfw.wiki/bfwrepo/font/Alarm-Clock.ttf") format("truetype");
}

:root {
	--sz: 1vmin;
	--lg: 200 250 250;
	--eqz1: 0;
	--eqz2: 50;
	--eqz3: 99;
}	

*, *:before, *:after {
	box-sizing: border-box;
	transition: all 0s ease 0s;
}

body {
	margin: 0;
	padding: 0;
	width: 100vw;
	height: 100vh;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #3a3d44, #3b3e45, #383b42);
}

body:before, body:after {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	background: 
		repeating-conic-gradient(#0002 0.000095%, #fff0 .0005%, #fff0 .005%, #fff0 .0005%), 
		repeating-conic-gradient(#0002 0.00001%, #fff0 .00009%, #fff0 .00075%, #fff0 .000025%);
	opacity: 0.75;
	filter: blur(0.75px);
	z-index: -1;
}

.content {
	position: relative;
	width: calc(var(--sz) * 50);
	height: calc(var(--sz) * 40);
	display: flex;
	align-items: center;
	justify-content: center;
}

.eq {
	height: 100%;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.eq:before, 
.eq:after {
	content: "";
	width: calc(var(--sz) * 1.25);
	height: 70%;
	background: #272729;
	box-shadow: 0 0 calc(var(--sz) * 0.5) 0 #000 inset;
	border-radius: calc(var(--sz) * 0.25);
	position: absolute;
	z-index: -2;
}

.eq:after {
	height: 70%;
	box-shadow: 
		0 0 calc(var(--sz) * 0.5) 0 rgb(var(--lg)) inset, 
		-1px -1px 2px 0 #0008, 
		1px 1px 2px 0 #fff3;
	z-index: -1;
	bottom: calc(var(--sz) * 6);
}

.eq:nth-child(1) {
	--lg: 200 250 250;
}

.eq:nth-child(2)  {
	--lg: 120 200 220;
}

.eq:nth-child(3)  {
	--lg: 200 250 200;
}


.eq:nth-child(1):after {
	max-height: calc(calc(var(--eqz1) * 70 / 100 ) * 1%);
}

.eq:nth-child(2):after {
	max-height: calc(calc(var(--eqz2) * 70 / 100 ) * 1%);
}

.eq:nth-child(3):after {
	max-height: calc(calc(var(--eqz3) * 70 / 100 ) * 1%);
}




/* Range Styles */
input[type='range'] {
	transform: rotate(-90deg);
	transform-origin: center;
	width: 65%;
	height: calc(var(--sz) * 15);
	position: absolute;
	background: #fff0;
	--c1: #505058;
	--c3: #303038;
	--c2: #27282b;
	--sh: calc(calc(var(--eqz1) - 14) * 100%);
	--bg-thumb: 
		radial-gradient(circle at calc(var(--sz) * -4) 27%, rgb(var(--lg) / var(--sh)), calc(var(--sz) * 3.25), #fff0 calc(var(--sz) * 4.25) 100%),
		radial-gradient(circle at calc(var(--sz) * -4) 73%, rgb(var(--lg) / var(--sh)), calc(var(--sz) * 3.25), #fff0 calc(var(--sz) * 4.25) 100%),

		radial-gradient(ellipse at calc(50% - calc(var(--sz) * 1)) calc(var(--sz) * -0.5), var(--c3) calc(var(--sz) * 0.25), #fff0 calc(var(--sz) * 1)),
		radial-gradient(ellipse at calc(50% - calc(var(--sz) * 1)) calc(calc( 100% + var(--sz) * 0.5)), var(--c3) calc(var(--sz) * 0.25), #fff0 calc(var(--sz) * 1)),
		/*
		radial-gradient(ellipse at calc(50% - calc(var(--sz) * 0.85)) calc(var(--sz) * 0.5), var(--c3) calc(var(--sz) * 0.25), #fff0 calc(var(--sz) * 1.5)),
		radial-gradient(ellipse at calc(50% - calc(var(--sz) * 0.85)) calc(calc( 100% + var(--sz) * 0.5)), var(--c3) calc(var(--sz) * 0.25), #fff0 calc(var(--sz) * 1.5)),
		*/
		radial-gradient(circle at 50% calc(calc( 100% - var(--sz) * -0.5)), var(--c1) var(--sz), #69696a calc(var(--sz) * 1.2), #fff0 calc(var(--sz) * 1.35)),

		radial-gradient(circle at 50% calc(var(--sz) * -0.5), var(--c1) var(--sz), #69696a calc(var(--sz) * 1.2), #fff0 calc(var(--sz) * 1.35)),

		linear-gradient(90deg, var(--c1), var(--c2) calc(var(--sz) * 2) calc(var(--sz) * 2.25), var(--c1) calc(var(--sz) * 3), var(--c3) 0 calc(var(--sz) * 4), #69696a calc(var(--sz) * 4.5), var(--c1) calc(var(--sz) * 4.75), var(--c2) 100%), var(--c1);
}

input[type='range']:focus,
input[type=range]:focus::-webkit-slider-runnable-track {
	outline: none;
}

input[type='range'],
input[type='range']::-webkit-slider-runnable-track,
input[type='range']::-webkit-slider-thumb {
	-webkit-appearance: none;
}


/*** Range Thumb***/
input[type=range]::-webkit-slider-thumb {
	width: calc(var(--sz) * 7.5);
	height: calc(var(--sz) * 11.5);
	border-radius: calc(var(--sz) * 1.5);
	margin-top: calc(var(--sz) * -5.6);
	cursor: pointer;
	box-shadow: 
		-3.5vmin 0 1.5vmin -3.25vmin rgb(var(--lg) / var(--sh)),
		0 0 calc(var(--sz) * 0.25) calc(var(--sz) * 0.25) var(--c1) inset, 
		0 0 calc(var(--sz) * 0.35) 0 #0008, 
		calc(var(--sz) * -1) 0 calc(var(--sz) * 1) calc(var(--sz) * 0.25) #0006 ;
	border: 0;
	border-left: calc(var(--sz) * 0.25) solid var(--c1);
	border-image-slice: 1;
	border-image-source: linear-gradient(180deg, #fff0 10%, rgb(var(--lg) / var(--sh)) 27%, rgb(255 255 255 / var(--sh)) 50%, rgb(var(--lg) / var(--sh)) 73%, #fff0 90% );
	background: var(--bg-thumb);
	background-repeat: no-repeat;
	background-color: var(--c1);
}

input[type=range]::-moz-range-thumb {
	width: calc(var(--sz) * 7.5);
	height: calc(var(--sz) * 11.5);
	border-radius: calc(var(--sz) * 1.5);
	margin-top: calc(var(--sz) * -5.6);
	cursor: pointer;
	box-shadow: 
		-3.5vmin 0 1.5vmin -3.25vmin rgb(var(--lg) / var(--sh)),
		0 0 calc(var(--sz) * 0.25) calc(var(--sz) * 0.25) var(--c1) inset, 
		0 0 calc(var(--sz) * 0.35) 0 #0008, 
		calc(var(--sz) * -1) 0 calc(var(--sz) * 1) calc(var(--sz) * 0.25) #0006 ;
	border: 0;
	border-left: calc(var(--sz) * 0.25) solid var(--c1);
	border-image-slice: 1;
	border-image-source: linear-gradient(180deg, #fff0 10%, rgb(var(--lg) / var(--sh)) 27%, #ffffff00 50%, rgb(var(--lg) / var(--sh)) 73%, #fff0 90% );
	background: var(--bg-thumb);
	background-repeat: no-repeat;
	background-color: #fff0;
}




/*** Range Track ***/
input[type=range]::-webkit-slider-runnable-track {
	background-image: linear-gradient(90deg, #fff0 calc(var(--sz) * 3), #121212 0 calc(100% - calc(var(--sz) * 3)), #fff0 0 100%);
	background-color: #fff0;
	height: calc(var(--sz) * 0.2);
}

input[type=range]::-moz-range-track {
	background-image: linear-gradient(90deg, #fff0 calc(var(--sz) * 3), #121212 0 calc(100% - calc(var(--sz) * 3)), #fff0 0 100%);
	background-color: #fff0;
	height: calc(var(--sz) * 0.2);
}


/*** Level ***/
.level {
	width: 60%;
	height: 80%;
	z-index: -1;
	position: relative;
}

.level:before, 
.level:after {
	content: "";
	position: absolute;
	width: calc(var(--sz) * 6);
	height: calc(var(--sz) * 28);
	left: calc(var(--sz) * 2);
	background: repeating-radial-gradient(circle at calc(var(--sz) * 0.5) calc(var(--sz) * 1.5), rgb(var(--lg)) 0 calc(var(--sz) * 0.25), #fff0 calc(calc(var(--sz) * 0.25) + 1px) 100%);
	background-size: calc(var(--sz) * 5) calc(var(--sz) * 2.25);
	max-height: calc(var(--eqz1) * 1%);
	overflow: hidden;
	bott.........完整代码请登录后点击上方下载按钮下载查看

网友评论0