div+css实现数字文字立体视觉跟随鼠标交互动画效果代码
代码语言:html
所属分类:动画
代码描述:div+css实现数字文字立体视觉跟随鼠标交互动画效果代码动画效果代码
代码标签: div css 数字 文字 立体 视觉 跟随 鼠标 交互 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
@import url('https://fonts.googleapis.com/css2?family=Black+Ops+One&display=swap');
:root {
--shadow: #894ff1;
--bounce: linear(0 0%, 0 2.27%, 0.02 4.53%, 0.04 6.8%, 0.06 9.07%, 0.1 11.33%, 0.14 13.6%, 0.25 18.15%, 0.39 22.7%, 0.56 27.25%, 0.77 31.8%, 1 36.35%, 0.89 40.9%, 0.85 43.18%, 0.81 45.45%, 0.79 47.72%, 0.77 50%, 0.75 52.27%, 0.75 54.55%, 0.75 56.82%, 0.77 59.1%, 0.79 61.38%, 0.81 63.65%, 0.85 65.93%, 0.89 68.2%, 1 72.7%, 0.97 74.98%, 0.95 77.25%, 0.94 79.53%, 0.94 81.8%, 0.94 84.08%, 0.95 86.35%, 0.97 88.63%, 1 90.9%, 0.99 93.18%, 0.98 95.45%, 0.99 97.73%, 1 100%);
}
*, *:before, *:after {
box-sizing: border-box;
transform-style: preserve-3d;
}
body {
margin: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
background: radial-gradient(circle at 50% 0%, #212121 5vmax, #000);
font-family: 'Black Ops One', sans-serif;
}
.container {
width: 100vw;
height: 100vh;
display: flex;
flex-direction: column;
animation: color-hue 20s linear 0s infinite;
justify-content: center;
align-items: center;
}
@keyframes color-hue {
0% { filter: hue-rotate(0deg); }
100% { filter: hue-rotate(-360deg); }
}
@keyframes grow-txt {
0% { letter-spacing: -8.5vmin; }
100% { letter-spacing: 0.75vmin; }
}
.thanks, .followers {
font-size: 13vmin;
text-align: center;
color: #ac84f7;
height: 20vmin;
text-transform: uppercase;
letter-spacing: -8.5vmin;
animation: grow-txt 3s var(--bounce) 0.9s 1;
animation-fill-mode: forwards;
transition: all 1.5s ease 0.5s;
text-shadow:
0vmin 0vmin 0.25vmin #fff,
-0.1vmin 0.125vmin 0.25vmin var(--shadow),
-0.2vmin 0.25vmin 0.25vmin var(--shadow),
-0.4vmin 0.5vmin 0.25vmin #7f49e1,
-0.6vmin 0.75vmin 0.25vmin #7442cf,
-0.8vmin 1vmin 0.25vmin #6a3cbd,
-1vmin 1.25vmin 0.25vmin #6036ad,
-1.2vmin 1.5vmin 0.25vmin #57319d,
-1.4vmin 1.75vmin 0.25vmin #4a2787,
-1.6vmin 2vmin 0.25vmin #402275,
-1.8vmin 2.25vmin 0.25vmin #391e67,
-2vmin 2.5vmin 0.25vmin #301957,
-2.2vmin 2.75vmin 0.25vmin #271447,
-2.4vmin 3vmin 0.25vmin #1d0f35,
-2.6vmin 3.25vmin 5.5vmin #673AB7;
}
.thanks {
filter: hue-rotate(-25deg) brightness(1.5);
transform: rotateY(25deg) rotateX(45deg) translateX(-6vmin);
padding: 3vmin;
word-spacing: 8vmin;
}
.followers {
filter: hue-rotate(25deg) brightness(1.5);
transform: rotateY(25deg) rotateX(45deg) translateX(9vmin) translateY(0vmin);
padding: 0;
}
.thanks:hover, .followers:hover {
color: #fff7;
transition: all 0.75s ease 0s;
}
@keyframes tilt {
0%, 100% { transform: rotateX(0deg);}
15%, 50% { transform: rotateX(30deg);}
65%, 75% { transform: rotateX(-30deg);}
}
.numbers {
height: 30vh;
display: flex;
justify-content: center;
animation: tilt 2s var(--bounce) 2s 1;
transition: all 1s var(--bounce) 0s;
transform: rotateX(0deg) rotateZ(0deg) rotateZ(0deg);
}
.numbers:hover {
transform: rotateX(25deg) rotateZ(25deg) rotateZ(-25deg);
}
.numbers:hover .number {
transform: rotateY(-15deg) rotateZ(-5deg) rotateX(0deg);
transition: all 1s ease 0s;
}
.numbers:hover .cuboid .side:first-child {
background: hsl(var(--hue), var(--sat), 60%);
}
.numbers:hover .cuboid .side:last-child {
background: hsl(var(--hue), var(--sat), 90%);
}
.number {
display: flex;
justify-content: center;
align-items: center;
animation: grow 3s var(--bounce) 0.9s 1;
animation-fill-mode: forwards;
}
@keyframes grow {
0% { width: 0; }
100% { width: 22vmin; }
}
.cuboid {
--height: 5;
--width: 5;
--depth: 5;
--hue: 260;
--sat: 60%;
height: calc(var(--height) * 1vmin);
width: calc(var(--width) * 1vmin);
position: absolute;
animation: cube1 0.6s linear 0s infinite;
transform: translate3d(0vmin, 0vmin, 0vmin);
}
.cuboid .side {
position: absolute;
top: 50%;
left: 50%;
height: 100%;
width: 100%;
border-radius: 2px;
box-shadow: 0 0 20px 0 #280a4c inset;
box-shadow: 0 0 3vmin 0 #fff2 inset, 0 0 5vmin 0 #0002 inset;
transition: all 1s ease 0s;
}
.cuboid .side:nth-of-type(1) {
transform: translate3d(-50%, -50%, calc(var(--depth) * 0.5vmin));
background: hsl(var(--hue), var(--sat), 90%);
}
.cuboid .side:nth-of-type(2) {
transform: translate3d(-50%, -50%, calc(var(--depth) * -0.5vmin)) rotateY(180deg);
background: hsl(var(--hue), var(--sat), 25%);
}
.cuboid .side:nth-of-type(3) {
width: calc(var(--depth) * 1vmin);
transform: translate(-50%, -50%) rotateY(90deg) translate3d(0, 0, calc(var(--width) * 0.5vmin));
background: hsl(var(--hue), var(--sat), 75%);
}
.cuboid .side:nth-of-type(4) {
width: calc(var(--depth) * 1vmin);
transform: translate(-50%, -50%) rotateY(-90deg) translate3d(0, 0, calc(var(--width) * 0.5vmin));
background: hsl(var(--hue), var(--sat), 40%);
}
.cuboid .side:nth-of-type(5) {
height: calc(var(--depth) * 1vmin);
transform: translate(-50%, -50%) rotateX(90deg) translate3d(0, 0, calc(var(--height) * 0.5vmin));
background: hsl(var(--hue), var(--sat), 75%);
}
.cuboid .side:nth-of-type(6) {
height: calc(var(--depth) * 1vmin);
transform: translate(-50%, -50%) rotateX(-90deg) translate3d(0, 0, calc(var(--height) * 0.5vmin));
background: hsl(var(--hue), var(--sat), 20%);
}
.cuboi.........完整代码请登录后点击上方下载按钮下载查看
网友评论0