css+js实现立体回弹小球的checkbox开关效果代码
代码语言:html
所属分类:其他
代码描述:css+js实现立体回弹小球的checkbox开关效果代码
代码标签: css js 立体 回弹 小球 checkbox 开关
下面为部分代码预览,完整代码请点击下载或在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 {
--hue: 223;
--trans-dur: 0.3s;
font-size: calc(48px + (96 - 48) * (100vw - 320px) / (2560 - 320));
}
body,
input {
color: hsl(var(--hue), 90%, 10%);
font: 1em/1.5 sans-serif;
}
body {
background-image: linear-gradient(45deg, hsl(var(--hue), 90%, 67%), hsl(var(--hue), 90%, 70%));
display: flex;
height: 100vh;
}
.switch {
--dur: 2.5s;
margin: auto;
position: relative;
}
.switch__ball, .switch__ball:before, .switch__ball-shadow, .switch__ball-shadow:before, .switch__ball-shadow-outer, .switch__ball-texture, .switch__label, .switch__shadow, .switch__shadow:before, .switch__shadow:after, .switch__shadow-inner {
display: block;
position: absolute;
top: 0;
left: 0;
}
.switch__ball, .switch__ball:before, .switch__ball-shadow, .switch__ball-shadow-outer, .switch__shadow {
border-radius: 50%;
pointer-events: none;
width: 1.375em;
height: 1.375em;
}
.switch__ball, .switch__shadow {
overflow: hidden;
}
.switch__ball, .switch__ball-shadow, .switch__ball-shadow-outer {
z-index: 3;
}
.switch__ball {
top: 0.0625em;
left: 0.0625em;
}
.switch__ball:before {
background-image: linear-gradient(60deg, hsl(var(--hue), 90%, 10%, 0.2), hsla(var(--hue), 90%, 10%, 0));
box-shadow: 0.125em -0.0625em 0.125em hsla(var(--hue), 90%, 70%, 0.5) inset, 0.25em -0.125em 0.25em hsla(var(--hue), 90%, 10%, 0.5) inset, -0.0625em 0.0625em 0.0625em rgba(255, 255, 255, 0.7) inset;
content: "";
z-index: 1;
}
.switch__ball-shadow {
top: 0.0625em;
left: 0.0625em;
width: 0.6875em;
}
.switch__ball-shadow:before {
background-color: hsla(var(--hue), 90%, 40%, 0.7);
border-radius: 100% 0 0 100%/50% 0 0 50%;
content: "";
width: 100%;
height: 100%;
transform: rotate(-15deg) scale(1.15, 1);
transform-origin: 100% 50%;
}
.switch__ball-shadow-outer {
box-shadow: 0 0 0.25em hsl(var(--hue), 90%, 30%);
top: 0.3125em;
left: 0.0625em;
width: 0.875em;
height: 0.875em;
}
.switch__ball-texture {
background: url("https://assets.codepen.io/416221/speckled.jpg") 0 0/100% 100%;
right: 0;
left: auto;
width: 300%;
height: 100%;
}
.switch, .switch__input {
border-radius: 50%;
position: relative;
-webkit-tap-highlight-color: transparent;
}
.switch__input, .switch__shadow, .switch__shadow-inner {
border-radius: 0.75em;
width: 3em;
height: 1.5em;
}
.switch__input {
box-shadow: -0.125em 0.25em 0.25em hsl(var(--hue), 90%, 63%) inset, -0.125em -0.125em 0.25em hsl(var(--hue), 90%, 68%) inset, 0 -0.0625em 0.125em hsl(var(--hue), 90%, 60%), 0 0 0.25em hsl(var(--hue), 90%, 78%);
cursor: pointer;
display: block;
-webkit-appearance: .........完整代码请登录后点击上方下载按钮下载查看
网友评论0