svg+css+js实现一个立方体三维数字时间时钟显示效果代码

代码语言:html

所属分类:三维

代码描述:svg+css+js实现一个立方体三维数字时间时钟显示效果代码

代码标签: svg css 三维 时间 时钟

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

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

<head>

  <meta charset="UTF-8">
  

  
  
  
  
<style>
body {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  width: 100vw;
  --area: 3.75vmin;
  --y: #f8e8aa;
  --w: #fdf5f1;
  --o: #fd4109;
  --lb: #ade8e5;
  --p: #479bc6;
  --db: #222c47;
  --z: 1;
  --left: 0;
  background: #479bc6;
  overflow: hidden;
  filter: url(#squiggles);
}
body:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 50%;
  top: calc(50% + (var(--area) * 1.25));
  left: 0;
  backdrop-filter: blur(3px);
  z-index: 3;
  background: rgba(71, 155, 198, 0.85);
}
body #wrap {
  width: 75vmin;
  height: 11.25vmin;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: 1fr;
  grid-column-gap: 1.5vmin;
  perspective: 100vmin;
  position: relative;
  transform: scale(0.75) translateZ(0px) translateY(-7.5vmin);
  -webkit-box-reflect: below 15vmin;
}
body #wrap * {
  transform-style: preserve-3d;
}
body #wrap .block {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 1fr);
  grid-template-areas: "col1 col2 col3" "col4 col5 col6" "col7 col8 col9";
  z-index: 3;
  transition: 0.3s ease-in-out;
}
body #wrap .block:nth-of-type(2):before, body #wrap .block:nth-of-type(2):after, body #wrap .block:nth-of-type(4):before, body #wrap .block:nth-of-type(4):after {
  content: "";
  position: absolute;
  width: 2.5vmin;
  height: 2.5vmin;
  background: var(--lb);
  border-radius: 100%;
  left: calc(var(--area) * 3.5);
  top: 0;
  transform: translateZ(calc(var(--area) * -1.5)) rotateX(25deg);
}
body #wrap .block:nth-of-type(2):after, body #wrap .block:nth-of-type(4):after {
  top: calc(var(--area) * 1.5);
}
body #wrap .block * {
  backface-visibility: hidden;
}
body #wrap .block:nth-of-type(1) {
  animation: wobbling 1s ease-in-out infinite alternate -0.25s;
}
body #wrap .block:nth-of-type(2) {
  animation: wobbling 1s ease-in-out infinite alternate -0.5s;
}
body #wrap .block:nth-of-type(3) {
  animation: wobbling 1s ease-in-out infinite alternate -0.75s;
}
body #wrap .block:nth-of-type(4) {
  animation: wobbling 1s ease-in-out infinite alternate -1s;
}
body #wrap .block:nth-of-type(5) {
  animation: wobbling 1s ease-in-out infinite alternate -1.25s;
}
body #wrap .block:nth-of-type(6) {
  animation: wobbling 1s ease-in-out infinite alternate -1.5s;
}
@keyframes wobbling {
  from {
    transform: rotateX(-25deg) translateZ(calc(var(--area) * 2)) scaleZ(var(--z)) translateX(var(--left));
  }
  to {
    transform: rotateX(-55deg) translateZ(calc(var(--area) * 2)) scalez(var(--z)) translateX(var(--left));
  }
}
body #wrap .block:nth-of-type(-n + 2) {
  left: -50%;
}
body #wrap .block:nth-of-type(n + 5) {
  left: 50%;
}
body #wrap .block:nth-of-type(5) {
  z-index: 1;
}
body #wrap .block:last-of-type {
  z-index: 0;
}
body #wrap .block.cube0:first-of-type {
  --z: 0;
}
body #wrap .block.cube0:first-of-type ~ .block {
  --left: -50%;
}
body #wrap .block.cube0 .cube:nth-of-type(2), body #wrap .block.cube0 .cube:nth-of-type(5), body #wrap .block.cube0 .cube:nth-of-type(11), body #wrap .block.cube0 .cube:nth-of-type(14), body #wrap .block.cube0 .cube:nth-of-type(17), body #wrap .block.cube0 .cube:nth-of-type(23), body #wrap .block.cube0 .cube:nth-of-type(26) {
  left: 100%;
}
body #wrap .block.cube0 .cube:nth-of-type(2):nth-of-type(even), body #wrap .block.cube0 .cube:nth-of-type(5):nth-of-type(even), body #wrap .block.cube0 .cube:nth-of-type(11):nth-of-type(even), body #wrap .block.cube0 .cube:nth-of-type(14):nth-of-type(even), body #wrap .block.cube0 .cube:nth-of-type(17):nth-of-type(even), body #wrap .block.cube0 .cube:nth-of-type(23):nth-of-type(even), body #wrap .block.cube0 .cube:nth-of-type(26):nth-of-type(even) {
  left: -100%;
}
body #wrap .block.cube1 .cube:nth-of-type(1) {
  left: 100%;
}
body #wrap .block.cube1 .cube:nth-of-type(4) {
  left: 100%;
}
body #wrap .block.cube1 .cube:nth-of-type(7) {
  left: 100%;
}
body #wrap .block.cube1 .cube:nth-of-type(10) {
  left: 100%;
}
body #wrap .block.cube1 .cube:nth-of-type(13) {
  left: 100%;
}
body #wrap .block.cube1 .cube:nth-of-type(16) {
  left: 100%;
}
body #wrap .block.cube1 .cube:nth-of-type(19) {
  left: 100%;
}
body #wrap .block.cube1 .cube:nth-of-type(22) {
  left: 100%;
}
body #wrap .block.cube1 .cube:nth-of-type(25) {
  left: 100%;
}
body #wrap .block.cube1 .cube:nth-of-type(3) {
  left: -100%;
}
body #wrap .block.cube1 .cube:nth-of-type(6) {
  left: -100%;
}
body #wrap .block.cube1 .cube:nth-of-type(9) {
  left: -100%;
}
body #wrap .block.cube1 .cube:nth-of-type(12) {
  left: -100%;
}
body #wrap .block.cube1 .cube:nth-of-type(15) {
  left: -100%;
}
body #wrap .block.cube1 .cube:nth-of-type(18) {
  left: -100%;
}
body #wrap .block.cube1 .cube:nth-of-type(21) {
  left: -100%;
}
body #wrap .block.cube1 .cube:nth-of-type(24) {
  left: -100%;
}
body #wrap .block.cube1 .cube:nth-of-type(27) {
  left: -100%;
}
body #wrap .block.cube2 .cube:nth-of-type(5), body #wrap .block.cube2 .cube:nth-of-type(14), body #wrap .block.cube2 .cube:nth-of-type(23) {
  top: 100%;
}
body #wrap .block.cube2 .cube:nth-of-type(6), body #wrap .block.cube2 .cube:nth-of-type(15), body #wrap .block.cube2 .cube:nth-of-type(24) {
  top: 100%;
}
body #wrap .block.cube2 .cube:nth-of-type(10) {
  left: 200%;
}
body #wrap .block.cube2 .cube:nth-of-type(11) {
  left: 100%;
}
body #wrap .block.cube2 .cube:nth-of-type(13), body #wrap .block.cube2 .cube:nth-of-type(16) {
  transform: translateZ(calc(var(--area) * -2));
}
body #wrap .block.cube3 .cube:nth-of-type(10), body #wrap .block.cube3 .cube:nth-of-type(4), body #wrap .block.cube3 .cube:nth-of-type(13), body #wrap .block.cube3 .cube:nth-of-type(16) {
  left: 200%;
}
body #wrap .block.cube3 .cube:nth-of-type(11), body #wrap .block.cube3 .cube:nth-of-type(5), body #wrap .block.cube3 .cube:nth-of-type(14), body #wrap .block.cube3 .cube:nth-of-type(17) {
  left: 100%;
}
body #wrap .block.cube4 .cube:nth-of-type(4), body #wrap .block.cube4 .cube:nth-of-type(7), body #wrap .block.cube4 .cube:nth-of-type(13), body #wrap .block.cube4 .cube:nth-of-type(16), body #wrap .block.cube4 .cube:nth-of-type(22), body #wrap .block.cube4 .cube:nth-of-type(25) {
  left: 200%;
}
body #wrap .block.cube4 .cube:nth-of-type(11), body #wrap .block.cube4 .cube:nth-of-type(20), body #wrap .block.cube4 .cube:nth-of-type(5), body #wrap .block.cube4 .cube:nth-of-type(8), body #wrap .block.cube4 .cube:nth-of-type(14), body #wrap .block.cube4 .cube:nth-of-type(17), body #wrap .block.cube4 .cube:nth-of-type(23), body #wrap .block.cube4 .cube:nth-of-type(26) {
  left: 100%;
}
body #wrap .block.cube5 .cube:nth-of-type(4) {
  left: calc(300% - 100%);
}
body #wrap .block.cube5 .cube:nth-of-type(5) {
  left: calc(300% - 200%);
}
body #wrap .block.cube5 .cube:nth-of-type(13) {
  transform: translateZ(calc(var(--area) * -2));
  top: -100%;
}
body #wrap .block.cube5 .cube:nth-of-type(13):nth-of-type(16), body #wrap .block.cube5 .cube:nth-of-type(13):nth-of-type(17), body #wrap .block.cube5 .cube:nth-of-type(13):nth-of-type(18) {
  top: -200%;
}
body #wrap .block.cube5 .cube:nth-of-type(14) {
  transform: translateZ(calc(var(--area) * -2));
  top: -100%;
}
body #wrap .block.cube5 .cube:nth-of-type(14):nth-of-type(16), body #wrap .block.cube5 .cube:nth-of-type(14):nth-of-type(17), body #wrap .block.cube5 .cube:nth-of-type(14):nth-of-type(18) {
  top: -200%;
}
body #wrap .block.cube5 .cube:nth-of-type(15) {
  transform: translateZ(calc(var(--area) * -2));
  top: -100%;
}
body #wrap .block.cube5 .cube:nth-of-type(15):nth-of-type(16), body #wrap .block.cube5 .cube:nth-of-type(15):nth-of-type(17), body #wrap .block.cube5 .cube:nth-of-type(15):nth-of-type(18) {
  top: -200%;
}
body #wrap .block.cube5 .cube:nth-of-type(16) {
  transform: translateZ(calc(var(--area) * -2));
  top: -100%;
}
body #wrap .block.cube5 .cube:nth-of-type(16):nth-of-type(16), body #wrap .block.cube5 .cube:nth-of-type(16):nth-of-type(17), body #wrap .block.cube5 .cube:nth-of-type(16):nth-of-type(18) {
  top: -200%;
}
body #wrap .block.cube5 .cube:nth-of-type(17) {
  transform: translateZ(calc(var(--area) * -2));
  top: -100%;
}
body #wrap .block.cube5 .cube:nth-of-type(17):nth-of-type(16), body #wrap .block.cube5 .cube:nth-of-type(17):nth-of-type(17), body #wrap .block.cube5 .cube:nth-of-type(17):nth-of-type(18) {
  top: -200%;
}
body #wrap .block.cube5 .cube:nth-of-type(18) {
  transform: translateZ(calc(var(--area) * -2));
  top: -100%;
}
body #wrap .block.cube5 .cube:nth-of.........完整代码请登录后点击上方下载按钮下载查看

网友评论0