js实现可拖拽正方体内粒子发光三维效果代码

代码语言:html

所属分类:三维

代码描述:js实现可拖拽正方体内粒子发光三维效果代码

代码标签: 正方 体内 粒子 发光 三维 效果

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


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

<head>

  <meta charset="UTF-8">

  
  
  
<style>
* {
  box-sizing: border-box;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
  -webkit-backface-visibility: visible;
          backface-visibility: visible;
}

html,
body {
  height: 100%;
  width: 100%;
  overflow: hidden;
}

body {
  display: grid;
  place-items: center;
  margin: 0;
  -webkit-perspective: 200vmin;
          perspective: 200vmin;
  background: black;
}

@-webkit-keyframes bg-fall {
  0% {
    background-position-y: calc(var(--length));
  }
  100% {
    background-position-y: calc(var(--length) + var(--length) * 4);
  }
}

@keyframes bg-fall {
  0% {
    background-position-y: calc(var(--length));
  }
  100% {
    background-position-y: calc(var(--length) + var(--length) * 4);
  }
}
.box {
  --thickness: 0.3vmin;
  --size: 60vmin;
  --length: calc(var(--size) / 1.4142135624 + var(--thickness) / 1.4142135624);
  --speed: 3;
  --x: -0.4;
  --y: 0.1;
  --count: 200;
  width: var(--size);
  height: var(--size);
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  -webkit-transform: rotateX(calc(var(--y, 0) * -1turn)) rotateY(calc(var(--x, 0) * 1turn));
          transform: rotateX(calc(var(--y, 0) * -1turn)) rotateY(calc(var(--x, 0) * 1turn));
  pointer-events: none;
}
.box > div {
  position: absolute;
  width: 0;
  height: 0;
  left: calc(var(--size) / 2);
  top: calc(var(--size) / 2);
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
}
.box > div > div {
  position: absolute;
  top: calc(var(--length) / -2);
  left: calc(var(--thickness) / -2);
  width: var(--thickness);
  height: var(--length);
  -webkit-transform: rotateY(calc(var(--i, 0) * 90deg)) translateZ(calc(var(--size) / 2 + var(--thickness) / 2));
          transform: rotateY(calc(var(--i, 0) * 90deg)) translateZ(calc(var(--size) / 2 + var(--thickness) / 2));
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
}
.box > div > div:nth-child(1) {
  --i: 1;
}
.box > div > div:nth-child(2) {
  --i: 2;
}
.box > div > div:nth-child(3) {
  --i: 3;
}
.box > div > div:nth-child(4) {
  --i: 4;
}
.box > div > div > div {
  position: absolute;
  width: var(--thickness);
  height: var(--length);
  background: repeat -webkit-gradient(linear, left top, left bottom, from(#b23434), color-stop(#b2b234), color-stop(#34b234), color-stop(#34b2b2), color-stop(#3434b2), color-stop(#b234b2), to(#b23434));
  background: repeat linear-gradient(to bottom, #b23434, #b2b234, #34b234, #34b2b2, #3434b2, #b234b2, #b23434);
  background-size: 100% calc(var(--length) * 2);
  -webkit-animation: bg-fall calc(var(--speed) * 1s) linear infinite;
          animation: bg-fall calc(var(--speed) * 1s) linear infinite;
}
.box > div > div > div:nth-child(1) {
  -webkit-transform: translateZ(calc(var(--thickness) / 2.01));
          transform: translateZ(calc(var(--thickness) / 2.01));
}
.box > div > div > div:nth-child(2) {
  -webkit-transform: rotateY(90deg) translateZ(calc(var(--thickness) / 2.01));
          transform: rotateY(90deg) translateZ(calc(var(--thickness) / 2.01));
}
.box > div > div > div:nth-child(3) {
  -webkit-transform: translateZ(calc(var(--thickness) / -2.01));
          transform: translateZ(calc(var(--thickness) / -2.01));
}
.box > div > div > div:nth-child(4) {
  -webkit-transform: rotateY(90deg) translateZ(calc(var(--thickness) / -2.01));
          transform: rotateY(90deg) translateZ(calc(var(--thickness) / -2.01));
}
.box .x {
  -webkit-transform: rotateY(45deg);
          transform: rotateY(45deg);
}
.box .y {
  -webkit-transform: rotateZ(90deg) rotateY(45deg);
          transform: rotateZ(90deg) rotateY(45deg);
}
.box .z {
  -webkit-transform: rotateX(90deg) rotateY(45deg);
          transform: rotateX(90deg) rotateY(45deg);
}
.box .dot {
  width: calc(var(--size) / 150);
  height: calc(var(--size) / 150);
  background: repeat -webkit.........完整代码请登录后点击上方下载按钮下载查看

网友评论0