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