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