css+js实现立体圆形开关点击效果代码
代码语言:html
所属分类:布局界面
代码描述:css+js实现立体圆形开关点击效果代码,包含亮色与暗色两种样式。
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> <style> * { border: 0; box-sizing: border-box; margin: 0; padding: 0; } :root { /* surface and button */ --hue: 223; --sat: 10%; /* button light color */ --hue2: 223; --sat2: 90%; --light2: 60%; /* other */ --primary: hsl(var(--hue2),var(--sat2),var(--light2)); --trans-dur: 0.3s; --trans-timing: ease-in-out; --trans-timing2: cubic-bezier(0.42,-1.84,0.42,1.84); --trans-timing3: cubic-bezier(0.42,0,0.42,1.84); font-size: calc(16px + (24 - 16) * (100vw - 320px) / (2560 - 320)); } body, button { font: 1em/1.5 sans-serif; } body { height: 100vh; transition: background-color var(--trans-dur), color var(--trans-dur); } main { display: flex; flex-direction: column; width: 100%; height: 100%; } /* Light */ .col { background-image: linear-gradient(hsl(var(--hue),var(--sat),90%),hsl(var(--hue),var(--sat),75%)); display: flex; flex: 1; padding: 1.5em 0; min-height: 13em; } .btn { background-color: transparent; background-image: linear-gradient(hsl(var(--hue),var(--sat),80%),hsl(var(--hue),var(--sat),85%)); border-radius: 50%; box-shadow: 0 0 0 0.125em hsla(var(--hue2),var(--sat2),50%,0), 0 0 0.25em hsl(var(--hue),var(--sat),55%) inset, 0 0.125em 0.125em hsl(var(--hue),var(--sat),90%); cursor: pointer; margin: auto; outline: transparent; position: relative; width: 10em; height: 10em; transition: box-shadow var(--trans-dur) var(--trans-timing); -webkit-tap-highlight-color: transparent; } .btn:focus-visible { box-shadow: 0 0 0 0.125em hsla(var(--hue2),var(--sat2),50%,1), 0 0 0.25em hsl(var(--hue),var(--sat),55%) inset, 0 0.125em 0.125em hsl(var(--hue),var(--sat),90%); } .btn:before, .btn:after { border-radius: inherit; content: ""; display: block; position: absolute; } .btn:before { background-image: linear-gradient(hsl(var(--hue),var(--sat),90%),hsl(var(--hue),var(--sat),80%)); box-shadow: 0 0.75em 0.75em 0.25em hsla(var(--hue),0%,0%,0.3); top: 1.5em; left: 1.5em; width: 7em; height: 7em; transition: box-shadow var(--trans-dur) var(--trans-timing2), transform var(--trans-dur) var(--trans-timing2); } .btn:after { background-color: hsl(var(--hue),var(--sat),75%); background-image: linear-gradient(hsla(var(--hue),var(--sat),90%,0),hsl(var(--hue),var(--sat),90%)); box-shadow: 0 0.0625em 0 hsl(var(--hue),var(--sat),90%) inset, 0 -0.0625em 0 hsl(var(--hue),var(--sat),90%) inset, 0 0 0 0 hsla(var(--hue2),var(--sat2),var(--light2),0.1) inset; top: 3em; .........完整代码请登录后点击上方下载按钮下载查看
网友评论0