gsap+css实现带镜面反射的三维卡片翻转动画效果代码
代码语言:html
所属分类:动画
代码描述:gsap+css实现带镜面反射的三维卡片翻转动画效果代码
代码标签: gsap css 镜面 反射 三维 卡片 翻转 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
html {
--zoom: 120;
--green: #37996b;
--neon: #3ecf8e;
}
:root {
--unit: 1vmin;
--available-screen-min: 665;
--px: calc(var(--zoom) * (var(--unit) / var(--available-screen-min)));
--bg: #060809;
--logopng: url(//repo.bfw.wiki/bfwrepo/icon/63e331210762f.png);
--ticket: url(//repo.bfw.wiki/bfwrepo/svg/ticket-shape.svg);
--ar: 10/30;
--gutter: 8%;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
font-family: Arial, Helvetica, sans-serif;
font-size: 16px;
}
*::after,
*::before {
content: "";
display: block;
position: relative;
box-sizing: border-box;
}
head::before,
head::after,
body::before,
body::after,
html::before,
html::after {
content: "";
position: absolute;
background-repeat: no-repeat;
box-sizing: border-box;
filter: blur(0);
}
body {
all: unset;
background-color: var(--bg);
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
a {
all: unset;
}
#app {
perspective: 1200px;
--o: 0;
--p: 100%;
--h: 50%;
--r: 0;
transform: translate3d(0, 0, 0.1px);
}
.ticket {
--scale: 1;
transform: translate3d(0, 0, 0.1px) scale(var(--scale)) rotateY(var(--r));
transform-style: preserve-3d;
pointer-events: auto;
}
.front,
.back {
grid-area: 1/1;
background-color: #6e6176;
background-image: radial-gradient(
circle at var(--p) 50%,
#111 10%,
transparent 100%
);
background-size: 100% 220vh;
background-position: center;
background-repeat: no-repeat;
border-radius: 15px;
display: grid;
backface-visibility: visible;
transform: translateZ(1px);
transform-style: preserve-3d;
mask-image: var(--ticket);
mask-size: cover;
mask-repeat: no-repeat;
height: calc(420 * var(--px));
}
.cutout {
position: absolute;
}
.front::after,
.back::after {
content: "";
position: absolute;
inset: 0;
background-image: linear-gradient(
-70deg,
transparent 40%,
rgba(255, 255, 255, 0.5) 40.5%,
transparent
);
background-size: 200% 200%;
background-position: var(--p) var(--p);
z-index: 5;
opacity: calc(var(--o) + 0.5);
pointer-events: none;
}
.front {
transform: rotateY(180deg) translateZ(1px);
}
.back {
padding: calc(20 * var(--px));
}
.holo {
display: block;
position: absolute;
inset: 0;
border-radius: 15px;
}
.holo {
--space: 5%;
--red: hsl(0, 100%, 50%);
--orange: hsl(30, 100%, 50%);
--yellow: hsl(60, 100%, 50%);
--green:.........完整代码请登录后点击上方下载按钮下载查看
网友评论0