css+js实现面包机交互操作动画效果代码
代码语言:html
所属分类:动画
代码描述:css+js实现面包机交互操作动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
@import url('https://fonts.googleapis.com/css2?family=Poppins&display=swap');
*{
box-sizing: border-box;
}
html, body {
height: 100%;
overflow: hidden;
}
body {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
align-items: center;
margin: 0;
font-family: Poppins;
background: radial-gradient(circle at 50% 70%, rgb(248, 236, 217) 0%, rgba(106,91,69,1) 100%);
font-size: calc(var(--_size) * 0.01);
--_factor: min(600px, 80vh);
--_size: min(var(--_factor), 80vw);
--base-clr: #b7b5b4;
--toast-time: 0s;
}
.toaster-container {
position: relative;
width: 100em;
height: 100em;
}
.toaster-container * {
position: absolute; margin: auto;
left: 0; right: 0; top: 0; bottom: 0;
}
.toaster-clip {
width: 117.2%;
height: 10%;
scale: 2 2.5;
left: -4%;
bottom: -34%;
border-radius: 5%;
transform: skewx(283.1deg) rotate(7.6deg);
overflow: hidden;
}
.inset-toaster {
width: 27.8%;
height: 276%;
right: 0.4%;
top: 4%;
transform: rotate(-7.6deg) skewx(76.1deg) rotate(-13.7deg);
border-radius: 7%;
overflow: hidden;
}
.inset-toaster.btm .inset-inset-toaster{
background: transparent;
translate: 0 -2.4em;
}
.inset-toaster.btm .inset-inset-toaster::before {
width: 100%; height: 100%;
content: ''; display: block;
border-radius: 5%;
box-shadow:
inset 0 -0.2em 0.1em 0 #fff5,
0 1.8em 0.2em -0.2em rgba(0, 0, 0, 0.1),
-0.3em 0.4em 0.2em -0.3em rgb(26, 26, 26),
-0.3em 2em 0.4em -0.4em rgb(77, 77, 77),
0 2.1em 0 0 rgb(51, 51, 51);
}
.inset-toaster.btm .inset-inset-toaster::after {
width: 48%; height: 21%;
content: '';
display: block;
position: absolute;
left: 53%;
top: 66%;
border-radius: 22%;
transform: rotate(336deg);
box-shadow:
inset 0 -0.4em 0.1em -0.2em #fff5,
0em 0.32em 0.1em -0.2em rgba(26, 26, 26,0.8),
-0.3em 2em 0.4em -0.4em rgb(77, 77, 77),
0 2.4em 0 -0.4em rgb(51, 51, 51);
clip-path: polygon(10% -100%, 200% -100%, 200% 200%, -4% 200%);
}
.inset-inset-toaster {
background: rgba(96,96,96,1);
background: linear-gradient(157deg,
rgb(68,68,68) 18%,
rgb(96,96,96) 28%,
rgb(96,96,96) 32%,
rgb(111,111,111) 34%,
rgb(189, 189, 189) 41%,
rgb(189, 189, 189) 42%,
rgb(59, 59, 59) 47%,
rgb(59, 59, 59) 48%,
rgb(90, 88, 87) 52%,
rgb(223,211,197) 76%);
width: 115.9%;
height: 77.4%;
bottom: 3%;
left: -7.9%;
border-radius: 10%;
transform: rotate(30deg) skewx(30.4deg);
}
.side-piece {
background: #8b8782;
background: linear-gradient(180deg,
rgb(58, 58, 58) 0%,
rgb(59, 59, 59) 7%,
rgb(90, 88, 87) 16%,
rgb(223,211,197) 81%,
rgb(223,211,197) 90%,
rgb(53 53 53) 100%);
width: 72.9%;
height: 51.8%;
bottom: 1%;
left: -37%;
border-radius: 14%;
transform: rotate(30deg) skewx(29.5deg);
box-shadow:
-0.1em -1em 0.2em -1em #fff9,
-0.1em -1em 0.7em -1em #0009,
0 -1em 1em -1em #000,
inset 1em 0 1em -1.2em #000,
inset 0.1em 1em 0.2em -1em #fff9,
inset 4em -1em 3em -3em #fff8,
inset 0 0.6em 1em -0.3em rgba(0, 0, 0, 0.2),
inset 0 2.1em 0.4em -2em rgba(0, 0, 0, 0.4),
inset 0 2em 5em 4em rgba(0, 0, 0, 0.2);
}
.side-piece::before {
width: 10%; height: 94%;
content: '';
display: block;
position: absolute;
filter: blur(0.4em);
background: linear-gradient(0deg, transparent 0%, rgb(59, 59, 59) 90%),
linear-gradient(90deg, #fff 0%,rgb(104, 102, 102) 50%, #fff 100%);
bottom: 1%;
right: -3%;
}
.toaster-front {
width: 26%; height: 36%;
left: 49%;
top: 48%;
transform: rotateZ(-18deg) skew(-18deg);
}
.toaster-front .slider {
width: 2em; height: 64%;
border-radius: 10em;
box-shadow:
inset -0.2em 0.2em 0.1em -0.1em #fff8,
inset -0.2em 0.2em 0.2em 0.2em #0006,
inset -0.8em 0.8em 1.4em 0em rgb(102, 102, 102),
inset -0.1em 0.3em 0.2em 10em #000;
cursor: pointer;
}
.toaster-front .slider .handle {
width: 280%;
height: 4em;
background: rgb(65, 65, 65);
background: linear-gradient(0deg, #363636 24%,rgb(161, 161, 161) 80%, #6e6e6e 100%);
transform: rotateZ(0deg) skew(55deg);
border-radius: 0% 0% 50% 50%;
left: 40%;
bottom: 56%;
box-shadow:
inset 0em 2.1em 0.4em -2em #fff6,
inset 0em -0.3em 0.4em -0.3em #fff9,
inset 0em 2.2em 6em -2em #000,
-0.3em 0em 0.1em -0.1em #000,
-0.4em 0.3em 0.1em -0.1em #000;
transition: translate 0.3s ease-in;
}
.toaster-front .slider .handle::before {
content: '';
display: block;
background: #000;
width: 8%; height: 60%;
rotate: -8deg;
border-radius: 1em;
left: -8%;
top: 6%;
position: absolute;
}
.active .toaster-front .slider .handle {
translate: 0 16em;
}
.toaster-front .timer-lights {
width: 2em; height: 40%;
left: 50%; bottom: 20%;
display: flex;
flex-direction: column;
}
.toaster-front .timer-lights .light {
width: 1.2em; height: 1.2em;
position: relative;
border-radius: 50%;
transition: box-shadow 0.2s ease-in-out;
box-shadow:
inset 0 0 0.2em 0.1em #96360a80,
inset 0 0 0.3em 0.2em #ffbb0073,
inset 0 0 0 0.6em #ff910000, /* offlight */
inset 0 0 0 0.6em #000,
0 0 0.2em 0.1em #d8aa2b,
0 0 0.2em 0.2em #cf68143b,
0 0 0 0.3em #000,
0 0 0.3em 0.3em #ffffff88,
0 0 1em 0.3em #ee893700,/* offglow */
0 0 1em 0.1em #ee89373a;
filter: grayscale(0.5);
}
.toaster-front .timer-lights .light.level {
box-shadow:
inset 0 0 0.2em 0.1em #96360a,
inset 0 0 0.3em 0.2em #ffbb00,
inset 0 0 0 0.6em #ff910000, /* offlight */
inset 0 0 0 0.6em #000,
0 0 0.2em 0.1em #d8aa2b,
0 0 0.2em 0.2em #cf6814,
0 0 0 0.3em #000,
0 0 0.3em 0.3em #fff,
0 0 1em 0.3em #ee893700,/* offglow */
0 0 1em 0.1em #ee8937;
}
.toaster-front .timer-lights .light::before {
display: block;
left: 224%;
top: -40%;
rotate: -5deg;
font-weight: 500;
color: #292929;
position: absolute;
font-size: 1.4em;
transform: skew(-6deg);
}
.toaster-front .timer-lights .light:nth-child(1)::before { content:"1";}
.toaster-front .timer-lights .light:nth-child(2)::before { content:"2"; left: 218%;}
.toaster-front .timer-lights .light:nth-child(3)::before { content:"3"; left: 212%;}
.toaster-front .timer-lights .light:nth-child(4)::before { content:"4"; left: 206%;}
.toaster-front .timer-lights .light.on {
width: 1.2em; height: 1.2em;
position: relative;
border-radius: 50%;
box-shadow:
inset 0 0 0.2em 0.1em #96360a,
inset 0 0 0.3em 0.2em #ffbb00,
inset 0 0 0 0.6em #ff9100, /* onlight */
inset 0 0 0 0.6em #000,
0 0 0.2em 0.1em #d8aa2b,
0 0 0.2em 0.2em #cf6814,
0 0 0 0.3em #000,
0 0 0.3em 0.3em #fff,
0 0 1em 0.3em #ee8937,/* onglow */
0 0 1em 0.1em #ee8937;
}
.toaster-front .knob {
width: 8em; height: 8em;
left: 58%;
top: 44%;
}
.toaster-front .knob-depth {
background: linear-gradient(10deg, #70645e 0%, #100b00 40%, #948977 86%, #fff 100%);
width: 7.4em;
height: 5.5em;
border-radius: 10em;
rotate: 35deg;
box-shadow:
-0.5em -0.3em 0.2em -0.3em #fff5,
inset 0 0 0.2em 0.1em #0005;
}
.toaster-front .knob-face {
--knob-rot: -80deg;
background: linear-gradient(164deg, #584d3c 0%,rgb(136, 136, 136) 100%);
width: 5em; height: 5em;
border-radius: 50%;
left: 28%;
top: 22%;
box-shadow:
-0.2em -0.2em 0.2em 0.1em #fff5,
inset 0 0 0.2em 0.1em #0005;
cursor: pointer;
}
.toaster-front .knob-face::before {
content:''; di.........完整代码请登录后点击上方下载按钮下载查看
网友评论0