div+css布局实现三维办公桌旋转动画效果代码

代码语言:html

所属分类:三维

代码描述:div+css布局实现三维办公桌旋转动画效果代码

代码标签: div css 布局 三维 办公桌 旋转 动画

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

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

<head>
  <meta charset="UTF-8">
  

  
  
  
  
<style>
body {
  position: relative;
  margin: 0;
  width: 100vw;
  height: 100vh;
  perspective: 1000px;
  overflow: hidden;
  background: #0004;

  *, *::before, *::after {
    transform-style: preserve-3d;
    position: absolute;
    box-sizing: border-box;
  }
}

.cube {
  --w: 10px; /* width      */
  --h: 10px; /* height     */
  --d: 10px; /* depth      */
  --c: #fff; /* base color */
  --b: ;     /* background */
  width: var(--w);
  height: var(--d);
  background: var(--c);

  &::before,
  &::after {
    content: "";
    width: var(--w);
    height: var(--h);
    background: var(--b) var(--c);
    top: 100%;
    transform-origin: 50% 0;
    transform: rotate3d(1, 0, 0, -90deg) translate3d(0, -100%, 0);
    box-shadow: inset 0 0 0 100vmax #0001;
  }

  &::after {
    top: auto;
    bottom: 100%;
    transform-origin: 50% 100%;
    transform: rotate3d(1, 0, 0, -90deg);
  }

  > * {
    width: var(--w);
    height: var(--d);
    background: var(--c);
    transform: translate3d(0, 0, var(--h));


    &::before,
    &::after {
      content: "";
      height: var(--h);
      width: var(--d);
      background: var(--b) var(--c);
      transform-origin: 0 0;
      transform: rotate(90deg) rotate3d(1, 0, 0, -90deg);
      box-shadow: inset 0 0 0 100vmax #00000008;
    }

    &::after {
      left: 100%;
    }
  }
}

@keyframes spin {
  0% { transform: translate(-50%, -50%) rotate3d(1,0,0,60deg) rotate3d(0,0,1,0deg); }
  100% { transform: translate(-50%, -50%) rotate3d(1,0,0,60deg) rotate3d(0,0,1, 360deg);}
}


article {
  width: 600px;
  height: 600px;
  background: 
    radial-gradient(farthest-side, #7a70 60%, #7a7),
    linear-gradient(#0000, #0000, #0302, #0000, #0000),
    linear-gradient(90deg, #0000, #0000, #0302, #0000, #0000),
    repeating-linear-gradient(45deg, #0000 0 2px, #00000008 0 4px),
    repeating-linear-gradient(-45deg, #0000 0 2px, #00000008 0 4px),
    #7a7;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate3d(1,0,0,60deg) rotate3d(0,0,1,-30deg) translate3d(0px, 100px, -100px);
  box-shadow: 
    0 0 0 20vmax #7a7;
  animation: spin 20s -13s linear infinite;
}

.tower-base {
  --w: 79px;
  --d: 79px;
  --h: 20px;
  --c: #e0e0e0;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
}
.tower {
  --w: 75px;
  --d: 75px;
  --h: 250px;
  --b:
    linear-gradient(to bottom right, #0000 50%, #0002),
    linear-gradient(#222 0 0) 95% 100% / 8px 50% no-repeat,;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  
  &::before,
  > div::before {
    box-shadow: inset 0 0 0 100vmax #2201;
  }

  &::after,
  > div::after {
    box-shadow: inset 0 0 0 100vmax #22220018;
    --b: 
      linear-gradient(to bottom left, #0000 50%, #0002),
      linear-gradient(#222 0 0) 5% 100% / 8px 50% no-repeat,;
  }
}

.cubicle {
  --wc: 262.5px;
  --hc: 337.5px;
  width: var(--wc);
  height: var(--hc);

  &:nth-child(2) {
    transform-origin: 0 100%;
    rotate: -90deg;
    bottom: 0;
    left: var(--hc);
  }

  &:nt.........完整代码请登录后点击上方下载按钮下载查看

网友评论0