div+css实现骷髅脸棒棒糖趣闻开关效果代码
代码语言:html
所属分类:布局界面
代码描述:div+css实现骷髅脸棒棒糖趣闻开关效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
@import url('https://fonts.googleapis.com/css2?family=Nanum+Pen+Script&display=swap');
:root {
--sz: 10vmin;
--on: #99dc39;
--of: #F44336;
--lg: var(--of);
--ttf: ease-in-out;
}
*, *:before, *:after {
box-sizing: border-box;
/*#btn:checked + label .thumb*/
}
body {
margin: 0;
padding: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
background: radial-gradient(circle at 50% 0%, #55555d, #141414);
}
.content {
position: relative;
width: calc(var(--sz) * 5);
height: calc(var(--sz) * 3);
display: flex;
align-items: center;
justify-content: center;
}
input {
display: none;
}
label[for=btn] {
position: absolute;
width: calc(var(--sz) * 4);
height: calc(var(--sz) * 2);
background: linear-gradient(0deg, #12172080, #0d121780);
border-radius: var(--sz);
overflow: hidden;
box-shadow:
0 0 calc(var(--sz) / 50) calc(var(--sz) / 50) #000000e0,
0 0 calc(var(--sz) / 10) calc(var(--sz) / 100) #0b0b10 inset;
}
.thumb {
position: absolute;
width: calc(calc(var(--sz) * 2) - calc(var(--sz) / 4));
height: calc(calc(var(--sz) * 2) - calc(var(--sz) / 4));
top: calc(calc( var(--sz) / 10) + calc(var(--sz) / 50));
left: calc(calc( var(--sz) / 10) + calc(var(--sz) / 50));
background: linear-gradient(0deg, #a1a1a1, #ffffff), linear-gradient(0deg, #212121, #474747);
border-radius: var(--sz);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
overflow: hidden;
transition-delay: 0.5s;
transition-duration: 0.5s;
transition-timing-function: var(--ttf);
box-shadow: calc(var(--sz) / -50) calc(var(--sz) / 50) calc(var(--sz) / 30) 0 #fff2 inset, 0 0 calc(var(--sz) / 10) calc(var(--sz) / 50) #000c;
animation: start 1s var(--ttf) 0s 1;
background-repeat: no-repeat;
background-size: 200% 100%, 100% 100%;
background-position: 200% 0, 0 0;
background: #fff0;
}
#btn:checked + label .thumb {
left: calc(calc(100% - calc(calc(var(--sz) * 2) - calc(var(--sz) / 3))) - calc(calc( var(--sz) / 10) + calc(var(--sz) / 10)));
background-position: 100% 0, 0 0;
box-shadow: calc(var(--sz) / -50) calc(var(--sz) / 50) calc(var(--sz) / 30) 0 #fff inset, 0 0 calc(var(--sz) / 10) calc(var(--sz) / 50) #000c;
}
@keyframes start {
100% {
left: calc(calc(100% - calc(calc(var(--sz) * 2) - calc(var(--sz) / 3))) - calc(calc( var(--sz) / 10) + calc(var(--sz) / 10)));
}
0%, 50% {
left: calc(calc( var(--sz) / 10) + calc(var(--sz) / 50));
}
}
.arms {
position: absolute;
width: 200%;
height: 100%;
border-radius: 10vmin;
overflow: hidden;
right: -50%;
}
/* HUMAN */
.arm-human {
position: absolute;
width: 14vmin;
height: 6vmin;
background: radial-gradient(circle at 20% 80%, #333 0.45vmin, #fff0 calc(0.45vmin + 1px) 100%), radial-gradient(circle at 10% 80%, #333 0.45vmin, #fff0 calc(0.45vmin + 1px) 100%), #575757;
right: -8%;
top: calc(50% - 3vmin);
border-radius: 0.25vmin;
box-shadow: -3vmin -0.5vmin 0.1vmin -0.65vmin #fff;
/*animation: catch2 1.5s var(--ttf) 0s reverse;*/
}
.hand-human {
position: absolute;
background: pink;
width: 7vmin;
height: 5vmin;
left: -9.25vmin;
border-radius: 21% 10% 80% 37% / 20% 12% 28% 32%;
z-index: 0;
}
.finger {
background: pink;
position: absolute;
width: 50%;
height: 25%;
border-radius: 3vmin 0 0 3vmin;
left: -2vmin;
border-left: 2px solid #0006;
border-bottom: 1px solid #0004;
}
.finger:nth-child(2) {
top: 25%;
width: 60%;
left: -40%;
}
.finger:nth-child(3) {
top: 50%;
left: -35%;
width: 55%;
}
.finger:nth-child(4) {
top: 75%;
left: -20%;
width: 40%;
}
.big-human {
background: pink;
border: 1px solid #0004;
width: 34%;
height: 26%;
position: absolute;
left: -9vmin;
top: 0.65vmin;
border-radius: 3vmin 1vmin 1vmin 3vmin;
border-right-color: #fff0;
z-index: 1;
}
@keyframes catch {
0% { right: -8%;}
25%, 33% { right: 25%; }
66%, 80% { right: 0%; }
100% { right: -5%; }
}
@keyframes catch2 {
0% { right: -8%;}
15%, 35% { right: 25%; }
65%, 87.5% { right: 0%; }
100% { right: -5%; }
}
#btn:not(:checked) + label .arms .arm-human {
animation: catch 1.5s var(--ttf) 0s reverse;
}
/* BONES */
@keyframes check-on {
0% { left: -8%;}
25%, 33% { left: -2%; }
66%, 80% { left: 23%; }
100% { left: -8%; }
}
@keyframes check-off {
0% { left: -8%;}
25%, 33% { left: 0%; }
66%, 80% { left: 25%; }
100% { left: -8%; }
}
#btn:checked + label .arms .arm-bones {
animation: check-on 1.5s var(--ttf) 0s;
}
.arm-bones {
position: absolute;
w.........完整代码请登录后点击上方下载按钮下载查看
网友评论0