Bootstrap

HTML&CSS:3D金字塔加载动画

效果演示

这段代码通过CSS3的3D变换和动画功能,创建了一个旋转的金字塔加载动画,每个侧面都有不同的颜色渐变,底部还有一个模糊的阴影效果,增加了视觉的立体感。
在这里插入图片描述

HTML

<div class="pyramid-loader">
  <div class="wrapper">
    <span class="side side1"></span>
    <span class="side side2"></span>
    <span class="side side3"></span>
    <span class="side side4"></span>
    <span class="shadow"></span>
  </div>
</div>
  • pyramid-loader 是最外层的容器,用于包含整个金字塔动画。
  • wrapper 是金字塔的主体部分,包含四个 span 元素,每个代表金字塔的一个侧面,以及一个 span 元素用于表示阴影效果。

CSS

.pyramid-loader {
  position: relative;
  width: 300px;
  height: 300px;
  display: block;
  transform-style: preserve-3d;
  transform: rotateX(-20deg);
}

.wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  animation: spin 4s linear infinite;
}

@keyframes spin {
  100% {
    transform: rotateY(360deg);
  }
}

.pyramid-loader .wrapper .side {
  width: 70px;
  height: 70px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  transform-origin: center top;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}

.pyramid-loader .wrapper .side1 {
  transform: rotateZ(-30deg) rotateY(90deg);
  background: conic-gradient( #2BDEAC, #F028FD, #D8CCE6, #2F2585);
}

.pyramid-loader .wrapper .side2 {
  transform: rotateZ(30deg) rotateY(90deg);
  background: conic-gradient( #2F2585, #D8CCE6, #F028FD, #2BDEAC);
}

.pyramid-loader .wrapper .side3 {
  transform: rotateX(30deg);
  background: conic-gradient( #2F2585, #D8CCE6, #F028FD, #2BDEAC);
}

.pyramid-loader .wrapper .side4 {
  transform: rotateX(-30deg);
  background: conic-gradient( #2BDEAC, #F028FD, #D8CCE6, #2F2585);
}

.pyramid-loader .wrapper .shadow {
  width: 60px;
  height: 60px;
  background: #8B5AD5;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  transform: rotateX(90deg) translateZ(-40px);
  filter: blur(12px);
}
  • .pyramid-loader 设置了容器的位置、大小和3D变换样式,使其能够包含3D元素,并且整体沿X轴旋转-20度。
  • .wrapper 设置了内部容器的位置、大小和3D变换样式,并且应用了一个名为spin的动画,这个动画会使容器无限循环地旋转。
  • @keyframes spin 定义了一个关键帧动画,使元素绕Y轴旋转360度。
  • .side 类定义了金字塔侧面的尺寸、位置和剪裁路径,使其呈现为一个三角形。
  • .side1 设置了第一个侧面的旋转角度和背景渐变色。
  • .side2 设置了第二个侧面的旋转角度和背景渐变色。
  • .side3 设置了第三个侧面的旋转角度和背景渐变色。
  • .side4 设置了第四个侧面的旋转角度和背景渐变色。
  • .shadow 设置了阴影的尺寸、位置、背景色、旋转角度和模糊效果。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;