svg城墙分层立体视觉效果

代码语言:html

所属分类:视觉差异

代码描述:svg城墙分层立体视觉效果

代码标签: 立体 视觉 效果

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

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">

<style>
body {
  display: grid;
  place-items: center;
  height: 100vh;
  width: 100vw;
  background: #63ffd9;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
  --path:path("M 0 400 Q 110 400 110 330 L 110 130 Q 110 60 170 60 Q 230 60 230 130 L 230 590 Q 230 660 290 660 Q 350 660 350 590 L 350 290 Q 350 220 410 220 Q 470 220 470 290 L 470 500 Q 470 570 530 570 Q 590 570 590 500 L 590 160 Q 590 90 650 90 Q 710 90 710 160 L 710 320 Q 710 400 800 400 L 800 800 L 0 800 L 0 400 ");
  --path1:path("M 0 400 Q 110 400 110 330 L 110 130 Q 110 60 170 60 Q 230 60 230 130 L 230 590 Q 230 660 290 660 Q 350 660 350 590 L 350 290 Q 350 220 410 220 Q 470 220 470 290 L 470 500 Q 470 570 530 570 Q 590 570 590 500 L 590 160 Q 590 90 650 90 Q 710 90 710 160 L 710 320 Q 710 400 800 400 L 800 800 L 0 800 L 0 400 ");
  --path2: path("M 0 400 Q 110 400 110 330 L 110 260 Q 110 190 170 190 Q 230 190 230 260 L 230 360 Q 230 440 290 440 Q 350 440 350 360 L 350 290 Q 350 220 410 220 Q 470 220 470 290 L 470 560 Q 470 640 530 640 Q 590 640 590 560 L 590 140 Q 590 70 650 70 Q 710 70 710 140 L 710 320 Q 710 400 800 400 L 800 800 L 0 800 L 0 400 ");
  --path3: path("M 0 400 Q 110 400 110 400 L 140 400 Q 170 400 170 400 Q 200 400 230 400 L 260 400 Q 280 400 300 400 Q 350 400 350 330 L 350 290 Q 350 220 410 220 Q 470 220 470 290 L 470 560 Q 470 640 530 640 Q 590 640 590 560 L 590 140 Q 590 70 650 70 Q 710 70 710 140 L 710 320 Q 710 400 800 400 L 800 800 L 0 800 L 0 400 ");
  --path4: path("M 0 400 Q 80 400 80 470 L 80 620 Q 80 700 140 700 Q 200 700 200 620 L 200 480 Q 200 390 300 400 Q 350 400 350 330 L 350 290 Q 350 220 410 220 Q 470 220 450 220 L 490 220 Q 510 220 530 220 Q 590 220 590 160 L 590 140 Q 590 70 650 70 Q 710 70 710 140 L 710 320 Q 710 400 800 400 L 800 800 L 0 800 L 0 400 ");
  --path5: path("M 0 400 Q 80 400 80 470 L 80 620 Q 80 700 170 700 Q 260 700 260 620 L 260 520 Q 260 470 260 290 Q 260 220 330 220 L 370 220 Q 390 220 410 220 Q 470 220 450 220 L 490 220 Q 510 220 530 220 Q 580 220 590 280 L 590 500 Q 590 580 650 580 Q 710 580 710 500 L 710 470 Q 710 400 800 400 L 800 800 L 0 800 L 0 40");
  --path6: path("M 0 400 Q 80 400 80 470 L 80 620 Q 80 700 170 700 Q 260 700 260 620 L 260 520 Q 260 470 260 290 Q 260 220 330 220 L 330 220 Q 390 220 390 110 Q 390 50 450 50 L 520 50 Q 580 50 580 110 Q 580 220 580 280 L 580 500 Q 580 580 650 580 Q 710 580 710 500 L 710 470 Q 710 400 800 400 L 800 800 L 0 800 L 0 400 ");
  --path7:path("M 0 400 Q 80 400 80 400 L 120 400 Q 140 400 160 400 Q 190 400 210 400 L 240 400 Q 260 400 270 400 Q 290 400 310 400 L 340 400 Q 390 400 430 400 Q 450 400 470 400 L 520 400 Q 540 400 550 400 Q 570 400 580 400 L 610 400 Q 650 400 680 400 Q 700 400 710 400 L 730 400 Q 710 400 800 400 L 800 800 L 0 800 L 0 400 ");
  --path8:path("M 0 400 Q 80 400 80 400 L 120 400 Q 140 400 160 400 Q 190 400 210 400 L 240 400 Q 260 400 270 400 Q 290 400 310 400 L 340 400 Q 390 400 430 400 Q 450 400 470 400 L 520 400 Q 540 400 550 400 Q 570 400 580 400 L 610 400 Q 650 400 680 400 Q 700 400 710 400 L 730 400 Q 710 400 800 400 L 800 800 L 0 800 L 0 400 ");
  --path9:path("M 0 400 Q 80 400 80 400 L 120 400 Q 140 400 160 400 Q 190 400 210 400 L 240 400 Q 260 400 270 400 Q 290 400 310 400 L 340 400 Q 390 400 430 400 Q 450 400 470 400 L 520 400 Q 540 400 550 400 Q 570 400 580 400 L 610 400 Q 650 400 680 400 Q 700 400 710 400 L 730 400 Q 710 400 800 400 L 800 800 L 0 800 L 0 400 ");
  -webkit-perspective: 800px;
          perspective: 800px;
  --color1: #422B38;
  --color2: #7F415C;
  --color3: #B83F6C;
  --color4: #EB2E5C;
  --color5: #FD6765;
  --color6: #F89275;
  --color7: #FDDA92;
}
body.dark {
  background: #00634b;
}
body.dark:before, body.dark:after {
  -webkit-filter: brightness(0.25) hue-rotate(15deg) saturate(5);
          filter: brightness(0.25) hue-rotate(15deg) saturate(5);
}
body.dark #wrap .row:before, body.dark #wrap:hover .row:before {
  background: #00634b;
  box-shadow: inset -50px -50px 0 0 rgba(245, 240, 192, 0.25);
  -webkit-transition: 0.3s ease-in-out, -webkit-transform 1s ease-in-out;
  transition: 0.3s ease-in-out, -webkit-transform 1s ease-in-out;
  transition: 0.3s ease-in-out, transform 1s ease-in-out;
  transition: 0.3s ease-in-out, transform 1s ease-in-out, -webkit-transform 1s ease-in-out;
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s;
  -webkit-transform: scale(0.4) translateY(-250px) translateX(500px);
          transform: scale(0.4) translateY(-250px) translateX(500px);
}
body.dark .cell {
  -webkit-filter: brightness(0.5);
          filter: brightness(0.5);
}
body span {
  position: absolute;
  bottom: 50px;
  width: 100%;
  text-align: center;
  left: 0;
  z-index: 10;
  font-size: 12px;
  color: rgba(0, 0, 0, 0.5);
}
body:before, body:after {
  pointer-events: none;
  -webkit-transition: 1s ease-in-out;
  transition: 1s ease-in-out;
}
body:after {
  content: '';
  position: absolute;
  width: 440px;
  height: 440px;
  box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.5), 0 0 0 40px #fcfffe;
  z-index: 9;
  border-radius: 10px;
}
body:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 8;
  background: radial-gradient(circle at center, #fcfffe 300px, #c9fff2);
  -webkit-mask: linear-gradient(to bottom, #000 calc(50% - 225px), transparent calc(50% - 225px), transparent calc(50% + 225px), #000 calc(50% + 225px)), linear-gradient(to right, #000 calc(50% - 225px), transparent calc(50% - 225px), transparent calc(50% + 225px), #000 calc(50% + 225px));
          mask: linear-gradient(to bottom, #000 calc(50% - 225px), transparent calc(50% - 225px), transparent calc(50% + 225px), #000 calc(50% + 225px)), linear-gradient(to right, #000 calc(50% - 225px), transparent calc(50% - 225px), transparent calc(50% + 225px), #000 calc(50% + 225px));
}
body #wrap:hover {
  -webkit-transform: scale(0.5) scaleX(1.25) rotateX(50deg);
          transform: scale(0.5) scaleX(1.25) rotateX(50deg);
}
body #wrap:hover .row:nth-of-type(1) {
  -webkit-transform: translateY(0px) rotateX(-50deg) skewY(-2.5deg);
          transform: translateY(0px) rotateX(-50deg) skewY(-2.5deg);
}
body #wrap:hover .row:nth-of-type(1):nth-of-type(odd) {
  -webkit-transform: translateY(0px) rotateX(-50deg) skewY(2.5deg);
          transform: translateY(0px) rotateX(-50deg) skewY(2.5deg);
}
body #wrap:hover .row:nth-of-type(2) {
  -webkit-transform: translateY(5px) rotateX(-50d.........完整代码请登录后点击上方下载按钮下载查看

网友评论0