css+js实现可交互视觉差异三维卡片效果代码
代码语言:html
所属分类:视觉差异
代码描述:css+js实现可交互视觉差异三维卡片效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
html,
body {
margin: 0;
background-color: rgb(28, 17, 42);
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
overflow-x: hidden;
}
body {
--primary-highlight-400: hsl(178, 88%, 53%);
--primary-highlight-500: hsl(178, 88%, 38%);
--secondary-highlight-300: hsl(358, 88%, 71%);
--secondary-highlight-400: hsl(358, 88%, 53%);
--secondary-highlight-500: hsl(358, 88%, 38%);
--primary-white-500: hsla(0, 0%, 100%, 0.9);
--primary-white-400: hsla(0, 0%, 100%, 0.8);
--primary-white-300: hsla(0, 0%, 100%, 0.6);
--primary-white-200: hsla(0, 0%, 100%, 0.3);
--primary-white-150: hsla(0, 0%, 100%, 0.05);
--primary-white-100: hsla(0, 0%, 100%, 0);
--primary-black-300: rgba(0, 0, 0, 0.3);
--primary-black-200: rgba(0, 0, 0, 0.2);
--primary-black-100: rgba(0, 0, 0, 0.1);
--action-glow-spread-400: 1rem;
--action-glow-spread-500: 2rem;
}
h1,
h2,
h3,
p,
button {
all: unset;
font-family: inherit;
font-size: inherit;
}
.container {
--bg-gradient-angle: 0deg;
--bg-gradient-hue-start: 299;
--bg-gradient-hue-end: 29;
display: grid;
justify-content: center;
align-items: center;
inline-size: 100vw;
block-size: 100vh;
block-size: 100dvh;
}
.gradient-bg {
background-image: radial-gradient(
circle at center,
var(--primary-white-100),
var(--primary-black-200)
),
linear-gradient(
var(--bg-gradient-angle),
hsl(var(--bg-gradient-hue-start), 54%, 19%),
hsl(var(--bg-gradient-hue-end), 56%, 19%)
);
}
.threedee-container {
--perspective: 2000px;
--x-rotate: 0deg;
--y-rotate: 0deg;
--z-rotate: 0deg;
--stack-scale: 1rem;
--blur: 0;
--glass-rotation: 67deg;
--glass-stop-start: 30%;
--glass-stop-middle: 50%;
--glass-stop-end: 70%;
--glass-alpha-low: 0;
--glass-alpha-high: 1;
perspective: var(--perspective);
}
.box {
position: absolute;
inline-size: 20rem;
block-size: 20rem;
border: 0.5px solid var(--primary-black-100);
border-radius: 1rem;
background-color: var(--primary-white-150);
background-image: linear-gradient(
var(--glass-rotation),
rgba(255, 255, 255, var(--glass-alpha-low)) var(--glass-stop-start),
rgba(255, 255, 255, var(--glass-alpha-high)) var(--glass-stop-middle),
rgba(255, 255, 255, var(--glass-alpha-low)) var(--glass-stop-end)
);
}
.background {
background-image: linear-gradient(
148deg,
hsla(267, 20%, 20%, 0.6),
hsla(340, 20%, 30%, 0.6)
);
transform: translate(-50%, -50%) scale(1.1) rotateX(var(--x-rotate))
rotateY(var(--y-rotate)) rotateZ(var(--z-rotate))
translateZ(calc(var(--stack-scale) * -1));
}
.back {
pointer-events: none;
transform: translate(-50%, -50%) rotateX(var(--x-rotate))
rotateY(var(--y-rotate)) rotateZ(var(--z-rotate))
translateZ(calc(var(--stack-scale) * 0));
filter: blur(var(--blur));
}
.middle {
transform: translate(-50%, -50%) rotateX(var(--x-rotate))
rotateY(var(--y-rotate)) rotateZ(var(--z-rotate))
translateZ(calc(var(--stack-scale) * 1));
filter: blur(var(--blur));
}
.front {
pointer-events: none;
transform: translate(-50%, -50%) rotateX(var(--x-rotate))
rotateY(var(--y-rotate)) rotateZ(var(--z-rotate))
.........完整代码请登录后点击上方下载按钮下载查看
网友评论0