div+css实现逼真通量电容器工作动画效果代码

代码语言:html

所属分类:布局界面

代码描述:div+css实现逼真通量电容器工作动画效果代码

代码标签: div css 逼真 通量 电容器 工作 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开


<!DOCTYPE html>
<html lang="en" >

<head>

 
<meta charset="UTF-8">
 

 
<style>
@property --deg {
  syntax: "
<angle>";
  inherits: true;
  initial-value: 0deg;
}
@property --ratio-pos {
  syntax: "
<number>";
  inherits: true;
  initial-value: 0;
}
@property --ratio-size {
  syntax: "
<number>";
  inherits: true;
  initial-value: 0;
}
:root {
  --labs-sys-color-background: #111;
  --labs-sys-color-surface: #505050;
  --labs-sys-color-warn-container: #953a38;
  --labs-sys-color-tertiary-container: #f9bb26;
  --labs-sys-color-secondary: #ceb893;
  --labs-sys-z-noise: 100;
  --labs-sys-z-top: 1;
  --labs-sys-z-glass: 2;
}

.case {
  --light: rgba(255, 255, 255, 0.3);
  --surface: transparent;
  background: conic-gradient(var(--surface), var(--light), var(--surface), var(--light), var(--surface), var(--light), var(--surface), var(--light), var(--surface), var(--surface)), var(--labs-sys-color-surface);
  box-shadow: 0 0 10vmin rgba(0, 0, 0, 0.5);
  width: 60vmin;
  aspect-ratio: 3/3.8;
  border-radius: 3vmin;
  position: relative;
}
.case .top,
.case .bottom {
  height: 8vmin;
}
.case .center {
  height: 60vmin;
  display: grid;
  place-items: center;
}

.inner-container {
  background: radial-gradient(at center, rgba(255, 255, 255, 0.2), transparent 55%), linear-gradient(to bottom, black, rgba(0, 0, 0, 0.2)), var(--labs-sys-color-surface);
  width: 80%;
  height: 100%;
  border-radius: 6vmin;
  position: relative;
  overflow: hidden;
}

.top {
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: var(--labs-sys-z-top);
}
.top .gap {
  flex-basis: 0.7vmin;
}

.label {
  padding: 0.5vmin 0.8vmin;
  border-radius: 0.25vmin;
  background: var(--labs-sys-color-warn-container);
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  letter-spacing: 0.3vmin;
  font-weight: bold;
  font-family: "Helvetica Neue", Helvetica, sans-serif;
  font-size: 1.1vmin;
  text-shadow: 0.1vmin 0.1vmin 0.1vmin #390404de;
  box-shadow: 0 0.1vmin 0.3vmin rgba(0, 0, 0, 0.2);
  border: 1px solid transparent;
  z-index: var(--labs-sys-z-top);
}
.label:last-child {
  transform: translateY(42vmin);
}

.inner-container-shadow {
  pointer-events: none;
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
}
.inner-container-shadow:before {
  content: "";
  position: absolute;
  top: 7vmin;
  left: 2vmin;
  right: 2vmin;
  bottom: 2vmin;
  box-shadow: 0 -2vmin 0 10vmin rgba(0, 0, 0, 0.4);
  transform: translateY(5vmin);
  border-radius: 10vmin;
  filter: blur(10px);
}

.part {
  position: absolute;
  left: 1.5vmin;
  top: 6.5vmin;
}
.part .circle {
  position: absolute;
  border-radius: 50%;
  background: var(--labs-sys-color-secondary);
  width: 14vmin;
  aspect-ratio: 1;
  box-shadow: 1vmin 0 3vmin black;
}
.part .circle:before {
  content: "";
  position: absolute;
  inset: 0.1vmin;
  border: 0.2vmin rgba(255, 255, 255, 0.3) solid;
  border-radius: inherit;
  background: conic-gradient(transparent, var(--light), transparent, var(--light), transparent, var(--light), transparent, var(--light), transparent, var(--light), transparent);
}
.part .bolt {
  position: absolute;
  left: 2vmin;
  top: 5.7vmin;
  width: 1vmin;
  opacity: 0.8;
  aspect-ratio: 1;
  filter: drop-shadow(0 0.2vmin 0.2vmin rgba(0, 0, 0, 0.6));
}
.part .bolt.second {
  top: 7.5vmin;
}
.part .bolt:before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.5) 40%, rgba(0, 0, 0, 0.2)), var(--labs-sys-color-secondary);
  -webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
          clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}
.part .bolt:after {
  content: "";
  position: absolute;
  inset: 0.25vmin;
  background: radial-gradient(at center, rgba(255, 255, 255, 0.6) 40%, rgba(0, 0, 0, 0.2)), var(--labs-sys-color-secondary);
  border-radius: 50%;
  box-shadow: 0 0.1vmin 0.1vmin rgba(0, 0, 0, 0.4);
}
.part .plug {
  position: absolute;
}
.part .plug .plug-bottom {
  position: absolute;
  left: 5vmin;
  top: 5vmin;
  border-radius: 50%;
  box-shadow: 0 0.5vmin 0.5vmin 0.1vmin rgba(0, 0, 0, 0.6);
  width: 4vmin;
  aspect-ratio: 1;
  background: radial-gradient(at top, transparent, rgba(0, 0, 0, 0.4)), var(--labs-sys-color-warn-container);
  background-size: 150%;
  background-position-x: 50%;
}
.part .plug .plug-top {
  position: absolute;
  left: 5.4vmin;
  top: 5.4vmin;
  width: 3.2vmin;
  aspect-ratio: 1;
  border-radius: 50%;
  border-top: 0.1vmin solid rgba(255, 255, 255, 0.3);
  border-bottom: 0.3vmin solid rgba(0, 0, 0, 0.5);
  background: radial-gradient(1vmin at 50% 30%, rgba(255, 255, 255, 0.3), transparent), radial-gradient(5vmin at 50% 30%, rgba(255, 255, 255, 0.1), transparent), radial-gradient(5vmin at 50% 5%, transparent 40%, black 70%) var(--labs-sys-color-warn-container) center center no-repeat;
}
.part .plug .plug-end {
  position: absolute;
  left: 5.8vmin;
  top: 8vmin;
  width: 2.5vmin;
  aspect-ratio: 2/5;
  border-radius: 0.8vmin;
  background: radial-gradient(1vmin 2vmin at 70% 50%, rgba(255, 255, 255, 0.25), transparent), linear-gradient(to bottom, rgba(0, 0, 0, 0.9), transparent 30%), linear-gradient(to right, rgba(0, 0, 0, 0.3), transparent, rgba(0, 0, 0, 0.3)), radial-gradient(10vmin at 50% 0%, transparent 40%, rgba(0, 0, 0, 0.5) 60%), var(--labs-sys-color-warn-container);
}
.part .plug .plug-cable {
  position: absolute;
  left: 6.4vmin;
  top: 14vmin;
}
.part .plug .plug-cable .plug-calbe-end {
  position: absolute;
  left: 0.8vmin;
  top: 8.7vmin;
  transform: rotate(-45deg);
  width: 1.5vmin;
  height: 3.3vmin;
  background: radial-gradient(at 50% 0%, transparent 40%, rgba(0, 0, 0, 0.9) 80%), radial-gradient(1vmin at 100% 0%, rgba(0, 0, 0, 0.7), transparent), linear-gradient(to right, rgba(0, 0, 0, 0.5), transparent 60%, rgba(0, 0, 0, 0.5)), var(--labs-sys-color-tertiary-container);
  border-radius: 2vmin;
}
.part .plug .plug-cable:after {
  content: "";
  position: absolute;
  border-radius: 3vmin;
  width: 1.2vmin;
  height: 10vmin;
  background: radial-gradient(2vmin at 110% 100%, var(--labs-sys-color-tertiary-container), transparent), linear-gradient(to right, rgba(0, 0, 0, 0.5), transparent 40%, transparent 50%, transparent 60%, rgba(0, 0, 0, 0.5)), var(--labs-sys-color-tertiary-container);
}
.part .plug .plug-cable:before {
  content: "";
  position: absolute;
  background: radial-gradient(at 50% 0%, black 40%, rgba(0, 0, 0, 0.8));
  border-radius: 50%;
  border: 0.3vmin solid rgba(255, 255, 255, 0.3);
  top: 10vmin;
  left: 1.3vmin;
  width: 1.8vmin;
  aspect-ratio: 1;
}
.part .bridge {
  position: absolute;
  background: linear-gradient(to right, transparent 88%, rgba(0, 0, 0, 0.3) 88%, transparent 95%), var(--labs-sys-color-secondary);
  box-shadow: 0 0 0.3vmin 0vmin rgba(0, 0, 0, 0.3), 0 0 4vmin 0.5vmin rgba(0, 0, 0, 0.6);
  left: 7vmin;
  top: 5.2vmin;
  width: 20.4vmin;
  height: 1.6vmin;
  transform: rotate(43deg);
  transform-origin: center left;
}
.part .bridge:after {
  content: "";
  position: absolute;
  top: 0.6vmin;
  width: 17.5vmin;
  height: 0.4vmin;
  background: transparent;
  box-shadow: inset 0 0 0.3vmin rgba(0, 0, 0, 0.7);
  border-radius: 2vmin;
}
.part .bridge-glass {
  position: absolute;
  height: 2.2vmin;
  width: 16vmin;
  background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.7), transparent), linear-gradient(to right, rgba(255, 255, 255, 0.7), transparent, transparent);
  border: 2px solid rgba(255, 255, 255, 0.4);
  top: -0.45vmin;
  border-radius: 3vmin;
  mix-blend-mode: overlay;
  z-index: 1;
}
.part .bridge-glass .waveimage {
  position: absolute;
  top: -0.8vmin;
  left: 0;
  height: 3.5vmin;
  width: 20vmin;
  opacity: 0;
  -webkit-animation: wave 10s linear infinite;
          animation: wave 10s linear infinite;
  -webkit-animation-delay: 1s;
          animation-delay: 1s;
}
.part .bridge-light {
  z-index: 1;
  filter: blur(6px);
  position: absolute;
  height: 1.5vmin;
  width: 16vmin;
  background: white;
  -webkit-animation: bridgelight 10s linear infinite;
          animation: bridgelight 10s linear infinite;
  -webkit-animation-delay: 1s;
          animation-delay: 1s;
  border-radius: 4vmin;
  opacity: 0;
}
.part .bridge-light2 {
  z-index: 1;
  position: absolute;
  height: 0.5vmin;
  top: 0.5vmin;
  width: 17vmin;
  --s: #a4eaf8;
  background: linear-gradient(to right, var(--s) 20%, transparent 20%, var(--s) 50%, transparent 50%, var(--s) 80%, transparent 80%, var(--s) 90%, transparent 90%, transparent);
  background-size: 200% 100%;
  border-radius: 4vmin;
  -webkit-animation: bridgelight2 1s linear infinite;
          animation: bridgelight2 1s linear infinite;
  background-position: -100vmin;
  opacity: 0;
  z-index: 100;
}
@-webkit-keyframes bridgelight2 {
  from {
    background-position: -100vmin;
    opacity: 0;
  }
  to {
    background-position: 0;
    opacity: 1;
  }
}
@keyframes bridgelight2 {
  from {
    background-position: -100vmin;
    opacity: 0;
  }
  to {
    background-position: 0;
    opacity: 1;
  }
}
@-webkit-keyframes bridgelight {
  from {
    opacity: 0;
    width: 0;
  }
  2% {
    opacity: 1;
    width: 22vmin;
  }
  49% {
    opacity: 1;
    width: 22vmin;
  }
  50% {
    opacity: 0;
    width: 0;
  }
  50% {
    width: 22vmin;
  }
}
@keyframes bridgelight {
  from {
    opacity: 0;
    width: 0;
  }
  2% {
    opacity: 1;
    width: 22vmin;
  }
  49% {
    opacity: 1;
    width: 22vmin;
  }
  50% {
    opacity: 0;
    width: 0;
  }
  50% {
    width: 22vmin;
  }
}
.part.right {
  left: unset;
  right: 15vmin;
}
.part.right .circle {
  transform: rotate(42deg);
}
.part.right .plug-cable {
  transform: scaleX(-1) translateX(-1.2vmin);
}
.part.right .bridge {
  transform: rotate(136.8deg);
}
.pa.........完整代码请登录后点击上方下载按钮下载查看

网友评论0