svg实现就职贺卡点开悬浮动画效果代码
代码语言:html
所属分类:悬停
代码描述:svg实现就职贺卡点开悬浮动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
@import url("https://fonts.googleapis.com/css2?family=Fredoka+One&display=swap");
* {
box-sizing: border-box;
}
:root {
--bg: #2a3d51;
--body: #cddffe;
--stripes: #012665;
--flame-1: #eb9947;
--flame-2: #fae39e;
--paper: #bad9f7;
--paper-2: #e8f2fc;
--paper-3: #eb6347;
--card: #f5f9ff;
--insert: #f1f2f4;
--bottom-frosting: #f5b1a3;
--mid-frosting: #a3f5f5;
--top-frosting: #ccf5a3;
--balloon-3: 10;
--balloon-2: 180;
--balloon-1: 90;
--size: 35vmin;
--height: var(--size);
--width: calc(var(--size) * 1.4);
--read: 0;
--transition: 0.2s;
}
body {
background: var(--bg);
min-height: 100vh;
perspective: 1000px;
transform-style: preserve-3d;
overflow: hidden;
}
input {
opacity: 0;
position: fixed;
right: 100%;
}
label {
height: 100vh;
width: 100vw;
position: fixed;
top: 0;
left: 0;
z-index: 2;
transform-style: preserve-3d;
transform: translate3d(0, 0, 100px);
}
:checked ~ .scene {
--read: 1;
}
:checked ~ .scene .hide-back {
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
:checked ~ .scene .cake__candle {
transform: translate(0, 0);
}
.stamp {
height: 8vmin;
position: absolute;
top: 50%;
left: 50%;
transform: translate3d(-50%, -50%, 1px);
filter: saturate(0.5);
}
.barcode {
height: 6vmin;
width: 8vmin;
position: absolute;
bottom: 2vmin;
right: 2vmin;
transform: translate3d(0, 0, 1px);
--l: #808080;
background: repeating-linear-gradient(90deg, var(--l) 0 1%, transparent 1% 2%, var(--l) 2% 4%, transparent 4% 5%, var(--l) 5% 10%);
}
.scene {
display: flex;
align-items: center;
justify-content: center;
transform: rotateY(calc(var(--x, 0) * 1deg)) rotateX(calc(var(--y, 0) * 1deg));
height: 100vh;
width: 100vw;
transform-style: preserve-3d;
}
.card {
height: calc(var(--height));
position: relative;
width: var(--width);
transform-style: preserve-3d;
transform: translate(0, calc(var(--read, 0) * 25%)) rotateX(calc(var(--read, 0) * 90deg));
transition: transform var(--transition);
}
.card__confetti {
--size: calc(var(--s) * 1vmin);
height: var(--size);
width: var(--size);
position: absolute;
top: 0%;
left: 50%;
transition: transform calc(var(--read) * var(--transition)) calc(var(--read) * var(--transition)), opacity calc(var(--read) * var(--transition)) calc((var(--read) * var(--transition)) * 2);
transform: scale(var(--read)) translate(-50%, 10%) rotate(calc(var(--r) * 1deg)) rotateX(calc(var(--a) * 1deg)) skew(calc(var(--sk) * 1deg)) translate(0, calc(var(--height) * (var(--read, 0) * 1.5)));
opacity: calc(1 - var(--read));
}
.card__confetti:after {
background: hsl(var(--hue), 80%, 80%);
content: '';
position: absolute;
height: 100%;
width: 100%;
transition: transform calc(var(--read) * var(--transition)) calc(var(--read) * var(--transition));
transform: rotateX(calc((var(--rx) * var(--read)) * 1deg)) rotateY(calc((var(--ry) * var(--read)) * 1deg));
}
.card__content {
transform-style: preserve-3d;
height: 100%;
width: 100%;
}
.card__content--bottom:before {
content: "";
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
background: var(--insert);
-webkit-clip-path: polygon(0 0, 15% 0, 15% 30%, 85% 30%, 85% 0, 100% 0, 100% 100%, 0 100%);
clip-path: polygon(0 0, 15% 0, 15% 30%, 85% 30%, 85% 0, 100% 0, 100% 100%, 0 100%);
}
.card__content--top:before {
content: "";
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
background: var(--insert);
-webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 85% 100%, 85% 70%, 78% 70%, 78% 46%, 72.4% 46%, 72.4% 26.8%, 27.6% 26.8%, 27.6% 46%, 22% 46%, 22% 70%, 15% 70%, 15% 100%, 0 100%);
clip-path: polygon(0 0, 100% 0, 100% 100%, 85% 100%, 85% 70%, 78% 70%, 78% 46%, 72.4% 46%, 72.4% 26.8%, 27.6% 26.8%, 27.6% 46%, 22% 46%, 22% 70%, 15% 70%, 15% 100%, 0 100%);
}
.card__message {
position: absolute;
padding: 1rem;
font-family: sans-serif;
bottom: 0;
left: 50%;
transform: translate(-50%, 0);
}
.card__part {
height: var(--h, 100%);
width: var(--w, 100%);
position: absolute;
top: 0%;
left: 50%;
transform: translate(-50%, 0);
transform-style: preserve-3d;
}
.card__inner {
--h: 96%;
--w: 95%;
transform: translate3d(-50%, 0, calc(var(--height) * 0));
}
.card__sleeve {
height: 100%;
width: 100%;
}
.message {
font-family: "Fredoka One", cursive;
color: #1a1a1a;
display: flex;
flex-direction: column;
position: absolute;
top: 50%;
left: 20%;
transform: translate3d(0, -20%, 0);
margin: 0;
font-size: 4.5vmin;
}
.card__message {
font-family: "Fredoka One", cursive;
color: #1a1a1a;
font-size: 4vmin;
white-space: nowrap;
position: absolute;
top: 50%;
left: 50%;
trans.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0