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