div+css实现三维小猫立体旋转动画效果代码

代码语言:html

所属分类:三维

代码描述:div+css实现三维小猫立体旋转动画效果代码

代码标签: div css 三维 立体 旋转 动画

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

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

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


  
  
<style>
body {
  margin: 0;
}

.scene {
  transform-style: preserve-3d;
}

.scene *, .scene *::before {
  position: absolute;
  display: block;
  transform-style: preserve-3d;
  transform-origin: top left;
}

.scene *::before {
  content: '';
  width: 100%; height: 100%;
}

.cat {
  top: 65vh; left: 50vw;
  width: 414em; height: 702em;
  transform-origin: center;
  transform: translateX(-50%) rotateX(75deg) rotateZ(0turn);
  font-size: min(.03vh, .03vw);
  --color: #615656;
  --color: #0baadc;
  animation: cat 10s linear infinite;
}
@keyframes cat {
  50% { transform: translateX(-50%) rotateX(75deg) rotateZ(-180deg); }
	100% { transform: translateX(-50%) rotateX(75deg) rotateZ(-360deg); }
}

.cat::before {
  background-color: color-mix(in oklch, var(--color), black 70%);
  clip-path: polygon(137em 0, 50% 47em, calc(100% - 137em) 0, calc(100% - 86em) 70em, calc(100% - 100em) 198em, 100% 247em, calc(100% - 137em) 100%, 137em 100%, 0% 247em, 100em 198em, 86em 70em);
}

.cat-1 {
  left: 137em; top: 100%;
  width: 140em; height: 111em;
  transform: rotateX(2deg);
}

.cat-1::before {
  background-color: hsl(0 0% 11% / 1);
  clip-path: polygon(0% 0%, 100% 0%, 64% 100%);
}

.cat-1-1 {
  left: 90em; top: 100%;
  width: 146em; height: 145em;
  transform: rotateZ(141deg) rotateY(-86.92deg);
}

.cat-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 33%);
  clip-path: polygon(0% 0.2%, 91% 0%, 100% 100%, 0% 98.4%);
}

.cat-1-1-1 {
  left: 133em;
  width: 119em; height: 145em;
  transform: rotateZ(-5deg) rotateY(-88.9deg);
}

.cat-1-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 25%);
  clip-path: polygon(0% 0%, 100% 32.5%, 0% 100%);
}

.cat-1-1-2 {
  left: 133em;
  width: 135em; height: 176em;
  transform: rotateZ(-180.2deg) rotateX(34.7deg);
}

.cat-1-1-2::before {
  background-color: color-mix(in oklch, var(--color), black 37%);
  clip-path: polygon(0% 0%, 99% 0%, 100% 99%, 16% 100%);
}

.cat-1-1-2-1 {
  left: 133em;
  width: 120em; height: 174em;
  transform: rotateZ(-0.5deg) rotateY(-87.2deg);
}

.cat-1-1-2-1::before {
  background-color: hsl(0 0% 12% / 1);
  clip-path: polygon(0% 0%, 100% 9.5%, 86.1% 76.3%, 0% 100%);
}

.cat-1-1-2-2 {
  width: 177em; height: 124em;
  transform: rotateZ(83deg) rotateX(85.6deg);
}

.cat-1-1-2-2::before {
  background-color: color-mix(in oklch, var(--color), black 24%);
  clip-path: polygon(0% 0%, 100% 0%, 75% 87%, 15.5% 100%);
}

.cat-1-1-2-2-1 {
  left: 27em; top: 100%;
  width: 125em; height: 145em;
  transform: rotateZ(-8.8deg) rotateX(95.2deg);
}

.cat-1-1-2-2-1::before {
  background-color: color-mix(in oklch, var(--color), black 32%);
  clip-path: polygon(0% 0%, 86% 0%, 100% 90%, 7% 100%);
}

.cat-1-1-2-3 {
  left: 21em; top: 100%;
  width: 114em; height: 238em;
  transform: rotateZ(-0.8deg) rotateX(54deg);
}

.cat-1-1-2-3::before {
  background-color: color-mix(in oklch, var(--color), black 39%);
  clip-path: polygon(0.5% 0%, 100% 0%, 98% 100%, 37% 100%);
}

.cat-1-1-2-3-1 {
  left: 100%;
  width: 97em; height: 237em;
  transform: rotateZ(0.8deg) rotateY(-86.6deg);
}

.cat-1-1-2-3-1::before {
  background-color: hsl(0 0% 13% / 1);
  clip-path: polygon(0% 0%, 97% 25.3%, 74% 80.1%, 0% 100%);
}

.cat-1-1-2-3-2 {
  left: 1em;
  width: 242em; height: 101em;
  transform: rotateZ(80deg) rotateX(76.3deg);
}

.cat-1-1-2-3-2::before {
  background-color: color-mix(in oklch, var(--color), black 22%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 73%, 24% 100%);
}

.cat-1-1-2-3-2-1 {
  left: 58em; top: 100%;
  width: 155em; height: 128em;
  transform: rotateZ(-10.5deg) rotateX(103.4deg);
}

.cat-1-1-2-3-2-1::before {
  background-color: color-mix(in oklch, var(--color), black 27%);
  clip-path: polygon(0% 0%, 97% 0%, 100% 75.7%, 17% 100%);
}

.cat-1-1-2-3-3 {
  left: 43em; top: 100%;
  width: 68em; height: 188em;
  transform: rotateX(65deg);
}

.cat-1-1-2-3-3::before {
  background-color: color-mix(in oklch, var(--color), black 34%);
  clip-path: polygon(0% 0%, 100% 0%, 97.8% 100%);
}

.cat-1-1-2-3-3-1 {
  width: 199em; height: 71em;
  transform: rotateZ(70.5deg) rotateX(56.6deg);
}

.cat-1-1-2-3-3-1::before {
  background-color: color-mix(in oklch, var(--color), black 19%);
  clip-path: polygon(0% 0%, 100% 0%, 20.5% 100%);
}

.cat-1-1-2-3-3-1-1 {
  left: 100%;
  width: 89em; height: 174em;
  transform: rotateZ(66deg) rotateY(-105.9deg);
}

.cat-1-1-2-3-3-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 23%);
  clip-path: polygon(0% 0%, 100% 77%, 0% 100%);
}

.cat-1-1-2-3-3-2 {
  left: 100%;
  width: 74em; height: 188em;
  transform: rotateZ(0.5deg) rotateY(-86.1deg);
}

.cat-1-1-2-3-3-2::before {
  background-color: hsl(0 0% 14% / 1);
  clip-path: polygon(0% 0%, 100% 24%, 0% 100%);
}

.cat-2 {
  left: 100%; top: 247em;
  width: 286em; height: 475em;
  transform: rotateZ(16.75deg) rotateY(-66deg);
}

.cat-2::before {
  background-color: color-mix(in oklch, var(--color), black 35%);
  clip-path: polygon(0% 0%, 0% 100%, 100% 159em);
}

.cat-2-1 {
  top: 100%;
  width: 442em; height: 148em;
  transform: rotateZ(-47.85deg) rotateX(28deg);
}

.cat-2-1::before {
  background-color: color-mix(in oklch, var(--color), black 32%);
  clip-path: polygon(0% 0%, 21% 76%, 100% 100%, 96.45% 0%);
}

.cat-2-1-1 {
  left: 93em; top: 112.5em;
  width: 432em; height: 305em;
  transform: rotateZ(5.8deg) rotateX(15deg);
}

.cat-2-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 27%);
  clip-path: polygon(0% 0%, 81.2% 0%, 100% 100%);
}

.cat-2-1-1-1 {
  left: 100%; top: 100%;
  width: 184em; height: 533em;
  transform: rotateZ(125.25deg) rotateY(-43.8deg);
}

.cat-2-1-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 23%);
  clip-path: polygon(0% 0%, 100% 1%, 84% 100%, 0% 99.2%);
}

.cat-2-1-1-1-1 {
  left: 100%; top: 5em;
  width: 202em; height: 529em;
  transform: rotateZ(3.2deg) rotateY(-43.8deg);
}

.cat-2-1-1-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 27%);
  clip-path: polygon(0% 0%, 100% 45.9%, 0% 100%);
}

.cat-2-1-1-1-2 {
  width: 172em; height: 185em;
  transform: rotateZ(-88.4deg) rotateY(-38deg);
}

.cat-2-1-1-1-2::before {
  background-color: color-mix(in oklch, var(--color), black 16%);
  clip-path: polygon(0% 0%, 100% 26%, 100% 74%, 0% 100%);
}

.cat-2-1-1-1-2-1 {
  left: 100%; top: 49em;
  width: 321em; height: 373em;
  transform: rotateZ(-164.3deg) rotateX(68.1deg);
}

.cat-2-1-1-1-2-1::before {
  background-color: color-mix(in oklch, var(--color), black 20%);
  clip-path: polygon(0% 0%, 55.8% 0%, 100% 76%, 35% 100%);
}

.cat-2-1-1-1-2-2 {
  left: 100%; top: 137em;
  width: 371em; height: 321em;
  transform: rotateZ(74.3deg) rotateY(-68.5deg);
}

.cat-2-1-1-1-2-2::before {
  background-color: color-mix(in oklch, var(--color), black 20%);
  clip-path: polygon(0% 0%, 0% 56%, 76.1% 100%, 100% 36.3%);
}

.cat-2-1-1-1-2-3 {
  left: 100%; top: -12em;
  width: 195em; height: 209em;
  transform: rotateY(-14.7deg);
}

.cat-2-1-1-1-2-3::before {
  background-color: color-mix(in oklch, var(--color), black 20%);
  clip-path: polygon(0% 29%, 100% 0%, 100% 100%, 0% 71%);
}

.cat-2-1-1-1-2-3-1 {
  top: 29%;
  width: 384em; height: 355em;
  transform: rotateZ(-107.2deg) rotateY(-66.7deg);
}

.cat-2-1-1-1-2-3-1::before {
  background-color: color-mix(in oklch, var(--color), black 23%);
  clip-path: polygon(0% 0%, 100% 18.9%, 82.8% 67.5%, 57% 100%, 0% 57.4%);
}

.cat-2-1-1-1-2-3-1-1 {
  left: 220em; top: 100%;
  width: 255em; height: 175em;
  transform: rotateZ(-50.2deg) rotateX(41.9deg);
}

.cat-2-1-1-1-2-3-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 20%);
  clip-path: polygon(0% 0%, 60.6% 0%, 100% 100%, 25.5% 90.5%);
}

.cat-2-1-1-1-2-3-1-1-1 {
  left: 66em; top: 158em;
  width: 190em; height: 198em;
  transform: rotateZ(5deg) rotateX(68.4deg);
}

.cat-2-1-1-1-2-3-1-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 13%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 76.3%, 38.3% 100%);
}

.cat-2-1-1-1-2-3-1-1-1-1 {
  left: 73em; top: 100%;
  width: 152em; height: 55em;
  transform: rotateZ(-21.9deg) rotateX(27deg);
}

.cat-2-1-1-1-2-3-1-1-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 20%);
  clip-path: polygon(0% 0%, 100% 0%, 88% 100%);
}

.cat-2-1-1-1-2-3-2 {
  top: 71%;
  width: 355em; height: 384em;
  transform: rotateZ(17.2deg) rotateX(66.7deg);
}

.cat-2-1-1-1-2-3-2::before {
  background-color: color-mix(in oklch, var(--color), black 23%);
  clip-path: polygon(0% 0%, 16.5% 100%, 66.5% 83.9%, 100% 57%, 57.4% 0%);
}

.cat-2-1-1-1-2-3-2-1 {
  left: 100%; top: 220em;
  width: 175em; height: 255em;
  transform: rotateZ(50.2deg) rotateY(-41.9deg);
}

.cat-2-1-1-1-2-3-2-1::before {
  background-color: color-mix(in oklch, var(--color), black 20%);
  clip-path: polygon(0% 0%, 0% 60.6%, 100% 100%, 90.5% 25.5%);
}

.cat-2-1-1-1-2-3-2-1-1 {
  left: 158em; top: 66em;
  width: 198em; height: 190em;
  transform: rotateZ(-5deg) rotateY(-68.4deg);
}

.cat-2-1-1-1-2-3-2-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 13%);
  clip-path: polygon(0% 0%, 0% 100%, 76.3% 100%, 100% 38.3%);
}

.cat-2-1-1-1-2-3-2-1-1-1 {
  left: 100%; top: 73em;
  width: 55em; height: 152em;
  transform: rotateZ(21.9deg) rotateY(-27deg);
}

.cat-2-1-1-1-2-3-2-1-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 20%);
  clip-path: polygon(0% 0%, 0% 100%, 100% 88%);
}

.cat-2-1-1-1-2-3-3 {
  left: 100%; top: -3em;
  width: 252em; height: 215em;
  transform: rotateY(59deg);
}

.cat-2-1-1-1-2-3-3::before {
  background-color: color-mix(in oklch, var(--color), black 17%);
  clip-path: polygon(0% 1.5%, 100% 0%, 100% 100%, 0% 98.5%);
}

.cat-2-1-1-1-2-3-3-1 {
  left: 100%;
  width: 253em; height: 147em;
  transform: rotateZ(-180.8deg) rotateX(60deg);
}

.cat-2-1-1-1-2-3-3-1::before {
  background-color: color-mix(in oklch, var(--color), black 20%);
  clip-path: polygon(0% 0%, 22% 94.5%, 90% 93%, 100% 0%);
}

.cat-2-1-1-1-2-3-3-2 {
  left: 100%; top: 100%;
  width: 147em; height: 253em;
  transform: rotateZ(90.8deg) rotateY(-60deg);
}

.cat-2-1-1-1-2-3-3-2::before {
  background-color: color-mix(in oklch, var(--color), black 20%);
  clip-path: polygon(0% 0%, 94.5% 22%, 93% 90%, 0% 100%);
}

.cat-2-1-1-1-2-3-3-3 {
  left: 100%;
  width: 215em; height: 215em;
  transform: rotateY(-18.3deg);
}

.cat-2-1-1-1-2-3-3-3::before {
  background-color: color-mix(in oklch, var(--color), black 7%);
  clip-path: polygon(0% 0%, 100% 18.5%, 100% 81.5%, 0% 100%);
}

.cat-2-1-1-1-2-3-3-3-1 {
  left: 100%; top: 40em;
  width: 120em; height: 135em;
  transform: rotateY(-74deg);
}

.cat-2-1-1-1-2-3-3-3-1::before {
  background-color: color-mix(in oklch, var(--color), white 10%);
  clip-path: polygon(0% 0%, 100% 17.5%, 100% 82.5%, 0% 100%);
}

.cat-2-1-1-1-2-3-3-3-1-1 {
  top: 100%;
  width: 153em; height: 239em;
  transform: rotateZ(-11.3deg) rotateX(54.2deg);
}

.cat-2-1-1-1-2-3-3-3-1-1::before {
  left: -52em; width: 205em;
  background-color: color-mix(in oklch, var(--color), white 5%);
  clip-path: polygon(25.5% 0%, 0% 45%, 42.4% 100%, 100% 43%, 84.9% 0%);
}

.cat-2-1-1-1-2-3-3-3-1-1-1 {
  left: 35em; top: 100%;
  width: 179em; height: 80em;
  transform: rotateZ(-49.1deg) rotateX(13deg);
}

.cat-2-1-1-1-2-3-3-3-1-1-1::before {
  background-color: color-mix(in oklch, var(--color), white 8%);
  clip-path: polygon(0% 0%, 65.7% 100%, 100% 0%);
}

.cat-2-1-1-1-2-3-3-3-1-1-1-1 {
  width: 184em; height: 143em;
  transform: rotateZ(34.2deg) rotateX(43.55deg);
}

.cat-2-1-1-1-2-3-3-3-1-1-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 10%);
  clip-path: polygon(0% 0%, 1% 85%, 100% 100%, 78% 0%);
}

.cat-2-1-1-1-2-3-3-3-1-2 {
  width: 239em; height: 153em;
  transform: rotateZ(-78.7deg) rotateY(-54.2deg);
}

.cat-2-1-1-1-2-3-3-3-1-2::before {
  top: -52em; height: 205em;
  background-color: color-mix(in oklch, var(--color), white 5%);
  clip-path: polygon(0% 25.5%, 45% 0%, 100% 42.4%, 43% 100%, 0% 84.9%);
}

.cat-2-1-1-1-2-3-3-3-1-2-1 {
  left: 100%; top: 35em;
  width: 80em; height: 179em;
  transform: rotateZ(49.1deg) rotateY(-13deg);
}

.cat-2-1-1-1-2-3-3-3-1-2-1::before {
  background-color: color-mix(in oklch, var(--color), white 8%);
  clip-path: polygon(0% 0%, 100% 65.7%, 0% 100%);
}

.cat-2-1-1-1-2-3-3-3-1-2-1-1 {
  width: 143em; height: 184em;
  transform: rotateZ(-34.2deg) rotateY(-43.55deg);
}

.cat-2-1-1-1-2-3-3-3-1-2-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 10%);
  clip-path: polygon(0% 0%, 85% 1%, 100% 100%, 0% 78%);
}

.cat-2-1-1-1-2-3-3-3-1-3 {
  left: 100%; top: 24em;
  width: 76em; height: 88em;
  transform: rotateY(-41deg);
}

.cat-2-1-1-1-2-3-3-3-1-3::before {
  background-color: color-mix(in oklch, var(--color), white 7%);
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
}

.cat-2-1-1-1-2-3-3-3-1-3-1 {
  top: 100%;
  width: 88em; height: 96em;
  transform: rotateZ(-30.5deg) rotateX(22deg);
}

.cat-2-1-1-1-2-3-3-3-1-3-1::before {
  background-color: color-mix(in oklch, var(--color), white 0%);
  clip-path: polygon(0% 0%, 100% 0%, 54.5% 100%);
}

.cat-2-1-1-1-2-3-3-3-1-3-2 {
  width: 96em; height: 88em;
  transform: rotateZ(-59.5deg) rotateY(-22deg);
}

.cat-2-1-1-1-2-3-3-3-1-3-2::before {
  background-color: color-mix(in oklch, var(--color), white 0%);
  clip-path: polygon(0% 0%, 0% 100%, 100% 54.5%);
}

.cat-2-1-1-1-2-3-3-3-2 {
  top: 100%;
  width: 227em; height: 177em;
  transform: rotateZ(-10.5deg) rotateX(-34deg);
}

.cat-2-1-1-1-2-3-3-3-2::before {
  background-color: color-mix(in oklch, var(--color), black 12%);
  clip-path: polygon(0% 0%, 96% 0%, 100% 100%);
}

.cat-2-1-1-1-2-3-3-3-2-1 {
  left: 100%; top: 100%;
  width: 177em; height: 113em;
  transform: rotateZ(-93deg) rotateX(168deg);
}

.cat-2-1-1-1-2-3-3-3-2-1::before {
  background-color: color-mix(in oklch, var(--color), black 2%);
  clip-path: polygon(0% 0%, 100% 0%, 75% 100%);
}

.cat-2-1-1-1-2-3-3-3-2-1-1 {
  width: 175em; height: 87em;
  transform: rotateZ(40.4deg) rotateX(-57.9deg);
}

.cat-2-1-1-1-2-3-3-3-2-1-1::before {
  background-color: color-mix(in oklch, var(--color), white 3%);
  clip-path: polygon(0% 0%, 100% 0%, 54% 100%);
}

.cat-2-1-1-1-2-3-3-3-2-1-1-1 {
  left: 100%;
  width: 150em; height: 119em;
  transform: rotateZ(43deg) rotateY(3.6deg);
}

.cat-2-1-1-1-2-3-3-3-2-1-1-1::before {
  background-color: color-mix(in oklch, var(--color), white 10%);
  clip-path: polygon(0% 0%, 100% 18%, 0% 100%);
}
.cat-2-1-1-1-2-3-3-3-3-1-1 {
  width: 87em; height: 175em;
  transform: rotateZ(-40.4deg) rotateY(57.9deg);
}

.cat-2-1-1-1-2-3-3-3-3-1-1::before {
  background-color: color-mix(in oklch, var(--color), white 3%);
  clip-path: polygon(0% 0%, 0% 100%, 100% 54%);
}
.cat-2-1-1-1-2-3-3-3-3-1-1-1 {
  top: 100%;
  width: 119em; height: 150em;
  transform: rotateZ(-43deg) rotateX(-3.6deg);
}

.cat-2-1-1-1-2-3-3-3-3-1-1-1::before {
  background-color: color-mix(in oklch, var(--color), white 10%);
  clip-path: polygon(0% 0%, 18% 100%, 100% 0%);
}

.cat-2-1-1-1-2-3-3-3-2-2 {
  width: 287em; height: 70em;
  transform: rotateZ(38deg) rotateX(42.5deg);
}

.cat-2-1-1-1-2-3-3-3-2-2::before {
  background-color: color-mix(in oklch, var(--color), black 17%);
  clip-path: polygon(0% 0%, 100% 0%, 42% 100%);
}

.cat-2-1-1-1-2-3-3-3-2-2-1 {
  width: 140em; height: 149em;
  transform: rotateZ(29.9deg) rotateX(46deg);
}

.cat-2-1-1-1-2-3-3-3-2-2-1::before {
  background-color: color-mix(in oklch, var(--color), black 27%);
  clip-path: polygon(0% 0%, 100% 0%, 13.5% 100%);
}

.cat-2-1-1-1-2-3-3-3-2-2-1-1 {
  width: 224em; height: 92em;
  left: 19em; top: 100%;
  transform: rotateZ(-50.9deg) rotateX(42.7deg);
}

.cat-2-1-1-1-2-3-3-3-2-2-1-1::before {
  background-color: color-mix(in oklch, var(--color), black 22%);
  clip-path: polygon(0% 0%, 85% 0%, 100% 100%, 23.9% 46.5%);
}

.cat-2-1-1-1-2-3-3-3-2-2-1-1-1 {
 .........完整代码请登录后点击上方下载按钮下载查看

网友评论0