svg+js实现鼠标交互倾斜立体文字卡片效果代码

代码语言:html

所属分类:其他

代码描述:svg+js实现鼠标交互倾斜立体文字卡片效果代码

代码标签: svg js 鼠标 交互 倾斜 立体 文字 卡片

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
 
<meta charset="UTF-8">
 

 
 
 
<style>
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700;900&family=Space+Mono:wght@400;700&display=swap");

:root {
        --bg-color: #f1f1f1;
        --card-width: 300px;
        --card-height: 400px;
        --black: #080808;
        --white: #fafafa;
        --accent: #ff2d55;
        --grid-color: rgba(0, 0, 0, 0.08);
        --frame-color: rgba(8, 8, 8, 0.8);
        --transition-slow: 0.8s cubic-bezier(0.16, 1, 0.3, 1);
        --transition-fast: 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

* {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
}

body {
        font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
        background-color: var(--bg-color);
        padding: 5vw;
        min-height: 100vh;
        display: flex;
        justify-content: center;
        align-items: center;
        font-feature-settings: "salt" 1, "ss01" 1, "ss02" 1;
        color: var(--black);
}

.card-system {
        display: flex;
        flex-wrap: wrap;
        gap: 6vw;
        justify-content: center;
        max-width: 1200px;
}

.deconstructed-card {
        position: relative;
        width: var(--card-width);
        height: var(--card-height);
        cursor: pointer;
}

.card-layer {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        transition: transform var(--transition-slow), opacity var(--transition-slow);
}

.card-image {
        overflow: hidden;
        z-index: 1;
}

.wave-svg {
        width: 100%;
        height: 100%;
        transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.card-frame {
        z-index: 3;
        pointer-events: none;
}

.frame-path {
        fill: none;
        stroke: var(--frame-color);
        stroke-width: 1;
        stroke-dasharray: 1520;
        stroke-dashoffset: 0;
        transition: stroke-dashoffset 1.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.card-background {
        z-index: 0;
        background-color: var(--white);
}

.bg-grid {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
}

.grid-line {
        position: absolute;
        background-color: var(--grid-color);
        transition: transform var(--transition-slow), opacity var(--transition-fast);
}

.grid-line.horizontal {
        width: 100%;
        height: 1px;
        transform: scaleX(0.3);
        transform-origin: left;
}

.grid-line.vertical {
        height: 100%;
        width: 1px;
        transform: scaleY(0.3);
        transform-origin: top;
}

.bg-objects {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        pointer-events: none;
}

.bg-object {
        position: absolute;
        opacity: 0.3;
        transition: transform var(--transition-slow), opacity var(--transition-slow);
}

.bg-object.circle {
        width: 100px;
        height: 100px;
        border-radius: 50%;
        border: 1px solid rgba(0, 0, 0, 0.1);
        bottom: 40px;
        left: -30px;
        transform: translateY(20px);
}

.bg-object.square {
        width: 60px;
        height: 60px;
        border: 1px solid rgba(0, 0, 0, 0.1);
        top: 40px;
        right: 30px;
        transform: rotate(45deg) translateY(-20px);
}

.bg-object.triangle {
        width: 0;
        height: 0;
        border-left.........完整代码请登录后点击上方下载按钮下载查看

网友评论0