纯css实现三维悬空照片堆叠点击打开放大照片lightbox效果代码
代码语言:html
所属分类:图片放大
代码描述:纯css实现三维悬空照片堆叠点击打开放大照片lightbox效果代码
代码标签: css 三维 悬空 照片 堆叠 放大 照片 lightbox
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
<style>
*,
*::before,
*::after {
box-sizing: border-box;
font-family: "Poppins", sans-serif;
transform-style: preserve-3d;
}
body,
html {
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: transparent;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
body {
background: dodgerblue;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100vh;
overflow: hidden;
margin: 0;
perspective: 12in;
perspective-origin: 50% 50%;
animation: perspective 10s linear infinite;
animation-delay: 1s;
}
@keyframes perspective {
0% {
perspective-origin: 50% 50%;
perspective: 12in;
}
25% {
perspective-origin: 20% 30%;
perspective: 15in;
}
75% {
perspective-origin: 80% 70%;
perspective: 15in;
}
100% {
perspective-origin: 50% 50%;
perspective: 12in;
}
}
.surface {
position: relative;
background: transparent;
position: absolute;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 300%;
height: 300%;
left: -100%;
transform: rotateX(90deg) translateZ(-2.5in) translateY(-1in);
}
.surface .background {
position: absolute;
width: 100%;
height: 100%;
border-radius: 50%;
background-color: #362000;
background-image: url("//repo.bfw.wiki/bfwrepo/image/5e4350528640e.png");
background-position: center;
transform: translateZ(-1.02in) translateX(1in);
filter: blur(0.01in);
}
.surface .background::after {
position: absolute;
width: 100%;
height: 100%;
content: "";
background: radial-gradient(
circle,
rgba(0, 0, 0, 0) 0%,
rgba(0, 0, 0, 1) 90%,
rgba(0, 0, 0, 1) 100%
);
border-radius: 50%;
}
.surface .card {
position: absolute;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 3.5in;
height: 2in;
background: url("//repo.bfw.wiki/bfwrepo/image/5e62ef20b92ee.png");
background-position: center !important;
background-size: contain !important;
background-repeat: no-repeat !important;
transform: translateX(0.5in) rotateX(-30deg) rotateY(-10deg) rotateZ(-60deg);
outline: 0.01in solid transparent;
outline-offset: 0in;
transition: all 0.3s ease-in-out;
}
.surface .card p {
color: white;
background: rgba(0, 0, 0, 0.5);
padding: 0.1in;
font-size: 12pt;
line-height: 22pt;
font-weight: 500;
margin: 0;
}
.surface .card svg {
background: rgba(255, 255, 255, 0.7);
width: 2in;
height: auto;
padding: 0.2in;
border-radius: 0.5in;
}
.surface .card:nth-child(2) {
background: url("//repo.bfw.wiki/bfwrepo/image/5e62ef60656fd.png");
transform: translateZ(1.4in) translateX(-2in) rotateX(-25deg) rotateY(40deg)
rotateZ(-60deg);
}
.surface .card:nth-child(3) {
background: url("//repo.bfw.wiki/bfwrepo/image/5e62ef82c83ea.png");
transform: translateZ(3.1in) translateX(-0.25in) rotateX(-70deg) rotateY(0deg)
rotateZ(-60deg);
}
.surface .card:nth-child(4) {
background: url("//repo.bfw.wiki/bfwrepo/image/5fb34aff14a0f.png");
transform: translateZ(4.5in) translateX(-0.8in) translateY(0.6in)
rotateX(-80deg) rotateY(0deg) rotateZ(-20deg);
}
.surface .card:nth-child(5) {
background: url("//repo.bfw.wiki/bfwrepo/image/5fb34b3c1322f.png");
transform: translateZ(5.8in) translateX(1.4in) translateY(-0.7in)
rotateX(-70deg) rotateY(0deg) rotateZ(15deg);
}
.surface .card:nth-child(6) {
background: url("//repo.bfw.wiki/bfwrepo/image/5fb34b65ae8bb.png");
transform: translateZ(2in) translateX(1.7in) translateY(-0.7in)
rotateX(-60deg) rotateY(25deg);
}
.surface .card:nth-child(1)::after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: "";
background: black;
transform: rotateZ(20deg) rotateY(27deg) rotateX(17deg) translateX(0.3in)
translateY(0.5in) translateZ(-1in);
filter: blur(0.5in);
opacity: 0.8;
}
.surface .card:nth-child(2)::after {
position: absolute;
top: 0.4in;
right: 0.4in;
width: 30%;
height: 50%;
content: "";
background: black;
filter: blur(0.6in);
opacity: 0.7;
}
.card div {
position: absolute;
background: #eee;
transform-origin: 50% 50%;
backface-visibility: hidden;
-webkit-backface-visibility: hidden;
}
.card .back {
width: 100%;
height: 100%;
backface-visibility: hidden;
transform: translateZ(-0.035in) rotateX(180deg);
}
.card .bottom {
width: 3.485in;
height: 0.035in;
transform: rotateX(-90deg) translateZ(1in) translateX(-0.01in);
}
.card .top {
width: 3.485in;
height: 0.035in;
transform: rotateX(90deg) translateZ(0.97in) translateX(-0.01in);
}
.card .left {
width: 1.97in;
height: 0.035in;
transform: rotateX(-90deg) rotateY(-90deg) translateZ(1.75in)
translateX(0.02in);
}
.card .right {
width: 1.97in;
height: 0.035in;
transform: rotateX(-90deg) rotateY(90deg) translateZ(1.75in)
translateX(-0.02in);
}
.surface .card:hover {
outline: 0.04in solid white;
outline-offset: 0.2in;
transition: all 0.3s ease-in-out;
}
.surface .card .menu {
position: absolute;
width: 100%;
height: 100%;
bottom: 0;
left: 0;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-evenly;
visibility: hidden;
background: rgba(0, 0, 0, 0.8);
opacity: 0;
transition: all 0.3s ease-in-out;
}
.surface .card .menu label {
padding: 0.2in 0.25in;
background: dodgerblue;
color: white;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-radius: 0.1in;
text-decoration: none;
font-size: 14pt;
line-height: 28pt;
box-shadow: rgba(0, 0, 0, 0.3) 0px 19px 38px,
rgba(0, 0, 0, 0.22) 0px 15px 12px;
transition: all 0.3s ease-in-out;
}
label:hover {
cursor: pointer;
}
.surface .card .menu label:hover {
background: #888;
border-radius: 0.3in;
font-size: 16pt;
transition: all 0.3s ease-in-out;
}
.surface .card:hover .menu {
visibility: visible;
opacity: 1;
transition: all 0.3s ease-in-out;
}
body > input {
display: none;
}
body > img {
position: fixed;
align-self: flex-end;
margin-bottom: 0.4in;
height: 70%;
width: auto;
visibility: hidden;
opacity: 0;
z-index: 2;
box-shadow: rgba(0, 0, 0, 0.3) 0px 19px 38px,
rgba(0, 0, 0, 0.22) 0px 15px 12px;
transition: all 0.3s ease-in-out;
}
.lightbox-backdrop {
position: fixed;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.7);
visibility: hidden;
opacity: 0;
z-index: 1;
transition: all 0.3s ease-in-out;
}
#close-button {
width: 0.6in;
height: 0.6in;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: fixed;
top: 15%;
background: white;
border-radius: 0.1in;
box-shadow: rgba(0, 0, 0, 0.3) 0px 19px 38px,
rgba(0, 0, 0, 0.22) 0px 15px 12px;
z-index: 2;
}
#close-button::after {
position: absolute;
width: 1.5in;
height: auto;
padding: 0.1in 0in;
bottom: 110%;
content: "TAP TO CLOSE";
background: black;
color: white;
font-size: 12pt;
line-height: 24pt;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-radius: 0.1in;
}
#close-button svg {
width: 80%;
height: auto;
fill: black;
.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0