犯懒,需求提交给deepseek,然后就有了下面的代码

<!DOCTYPE html>


<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cache-Control" content="no-cache">
<title>My Personal Space</title>
<meta name="description" content="Welcome to my personal space - Explore my work and connect with me">
<meta name="keywords" content="personal website, portfolio, creative, developer">
<style>
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        user-select: none;
        font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    }
    
    html, body {
        overflow: hidden;
        width: 100%;
        height: 100%;
        position: fixed;
        background: #0c0018;
        color: #fff;
    }
    
    #bg-canvas {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 1;
        opacity: 0.8;
    }
    
    .content {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
        z-index: 10;
        padding: 20px;
        mix-blend-mode: difference;
    }
    
    .header {
        margin-bottom: 50px;
        max-width: 800px;
    }
    
    .name {
        font-size: 5rem;
        font-weight: 800;
        margin-bottom: 5px;
        letter-spacing: -1.5px;
        background: linear-gradient(to right, #ff75c3, #ffa647, #ffe83f, #9fff5b, #70e2ff);
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        animation: text-glow 2s ease-in-out infinite alternate;
    }
    
    @keyframes text-glow {
        0% {
            text-shadow: 0 0 5px rgba(255, 255, 255, 0.1);
        }
        100% {
            text-shadow: 0 0 15px rgba(255, 255, 255, 0.4), 0 0 30px rgba(118, 255, 247, 0.2);
        }
    }
    
    .tagline {
        font-size: 1.6rem;
        color: rgba(255, 255, 255, 0.9);
        margin-bottom: 30px;
        font-weight: 300;
        line-height: 1.6;
        max-width: 700px;
    }
    
    .links-container {
        display: flex;
        gap: 30px;
        margin-top: 20px;
    }
    
    .link-item {
        min-width: 180px;
        padding: 20px 30px;
        background: rgba(255, 255, 255, 0.05);
        backdrop-filter: blur(10px);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 12px;
        cursor: pointer;
        transition: all 0.4s ease;
        position: relative;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    
    .link-item:hover {
        transform: translateY(-8px);
        background: rgba(255, 255, 255, 0.09);
        box-shadow: 0 15px 25px rgba(0, 0, 0, 0.25);
        border-color: rgba(255, 255, 255, 0.3);
    }
    
    .link-item::before {
        content: "";
        position: absolute;
        top: -60px;
        left: -20px;
        width: 60px;
        height: 150px;
        background: linear-gradient(rgba(255, 255, 255, 0.1), transparent);
        transform: rotate(35deg);
        transition: all 1s ease;
    }
    
    .link-item:hover::before {
        left: 150px;
        transition-delay: 0.1s;
    }
    
    .logo-container {
        width: 70px;
        height: 70px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 18px;
        font-size: 1.8rem;
        background: rgba(255, 255, 255, 0.05);
        border: 1px solid rgba(255, 255, 255, 0.08);
    }
    
    .link-title {
        font-size: 1.4rem;
        font-weight: 600;
        margin-bottom: 8px;
    }
    
    .link-desc {
        font-size: 0.9rem;
        color: rgba(255, 255, 255, 0.7);
        font-weight: 300;
    }
    
    footer {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        padding: 25px;
        text-align: center;
        z-index: 10;
        background: rgba(0, 0, 0, 0.2);
        backdrop-filter: blur(10px);
        border-top: 1px solid rgba(255, 255, 255, 0.05);
        font-size: 1rem;
        color: rgba(255, 255, 255, 0.7);
    }
    
    footer a {
        color: rgba(255, 255, 255, 0.9);
        text-decoration: none;
        transition: all 0.3s ease;
        margin: 0 5px;
    }
    
    footer a:hover {
        color: #70e2ff;
        text-decoration: underline;
    }
    
    .bg-control {
        position: fixed;
        top: 20px;
        right: 20px;
        z-index: 100;
        display: flex;
        align-items: center;
        gap: 15px;
    }
    
    .bg-label {
        font-size: 0.9rem;
        color: rgba(255, 255, 255, 0.8);
        padding: 6px 12px;
        background: rgba(0, 0, 0, 0.3);
        border-radius: 20px;
        border: 1px solid rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(5px);
    }
    
    .bg-selector {
        padding: 8px 16px;
        background: rgba(0, 0, 0, 0.5);
        border: 1px solid rgba(255, 255, 255, 0.15);
        border-radius: 12px;
        color: white;
        backdrop-filter: blur(5px);
        cursor: pointer;
        outline: none;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    }
    
    .bg-selector:focus {
        border-color: rgba(118, 255, 247, 0.5);
    }
    
    .bg-selector option {
        background: rgba(20, 10, 30, 0.95);
    }
    
    /* Particle styling */
    .particle {
        position: absolute;
        z-index: 2;
        background-color: rgba(118, 255, 247, 0.6);
        border-radius: 50%;
        animation: float 6s infinite ease-in-out;
        box-shadow: 0 0 10px rgba(118, 255, 247, 0.4);
        pointer-events: none;
    }
    
    @keyframes float {
        0% {
            transform: translate(0, 0) scale(0.8);
            opacity: 0.6;
        }
        50% {
            transform: translate(40px, 40px) scale(1.2);
            opacity: 1;
        }
        100% {
            transform: translate(0, 0) scale(0.8);
            opacity: 0.6;
        }
    }
    
    /* Responsive design */
    @media (max-width: 768px) {
        .name {
            font-size: 3.5rem;
        }
        
        .tagline {
            font-size: 1.3rem;
        }
        
        .links-container {
            flex-direction: column;
            gap: 20px;
            width: 100%;
            max-width: 400px;
        }
        
        .link-item {
            width: 100%;
        }
        
        .bg-control {
            top: 10px;
            right: 10px;
            flex-direction: column;
            align-items: flex-end;
            gap: 8px;
        }
    }
    
    @media (max-width: 480px) {
        .name {
            font-size: 2.8rem;
        }
        
        .tagline {
            font-size: 1.1rem;
        }
        
        .logo-container {
            width: 60px;
            height: 60px;
            font-size: 1.5rem;
        }
    }
</style>


<canvas id="bg-canvas"></canvas>

<!-- Floating particles -->
<div class="particle" style="top:10%; left:15%; width:8px; height:8px; animation-delay:0s;"></div>
<div class="particle" style="top:80%; left:20%; width:6px; height:6px; animation-delay:-1.5s;"></div>
<div class="particle" style="top:25%; left:85%; width:10px; height:10px; animation-delay:-2s;"></div>
<div class="particle" style="top:55%; left:75%; width:7px; height:7px; animation-delay:-4s;"></div>
<div class="particle" style="top:85%; left:95%; width:9px; height:9px; animation-delay:-0.5s;"></div>

<div class="content">
    <div class="header">
        <h1 class="name">ALEX RIVER</h1>
        <p class="tagline">Digital Designer & Creative Developer from New York</p>
        
        <div class="links-container">
            <a href="https://github.com" target="_blank" rel="noopener" class="link-item">
                <div class="logo-container">
                    <span>👨‍💻</span>
                </div>
                <div class="link-title">GitHub</div>
                <div class="link-desc">View my code & projects</div>
            </a>
            
            <a href="https://dribbble.com" target="_blank" rel="noopener" class="link-item">
                <div class="logo-container">
                    <span>🎨</span>
                </div>
                <div class="link-title">Dribbble</div>
                <div class="link-desc">Browse my designs</div>
            </a>
            
            <a href="mailto:contact@example.com" class="link-item">
                <div class="logo-container">
                    <span>📬</span>
                </div>
                <div class="link-title">Contact</div>
                <div class="link-desc">Get in touch</div>
            </a>
        </div>
    </div>
</div>

<footer>
    <div>© 2023 ALEX RIVER STUDIO &mdash; ALL RIGHTS RESERVED 🔒</div>
    <div>
        Inspired by the night sky and cosmic patterns 
        <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="" viewBox="0 0 24 24">
            <path d="M20.92 2.38A15.72 15.72 0 0 0 17.5 2a8.26 8.26 0 0 0-6 2.06Q9.89 5.67 8.31 7.27c-1.21-.26-2 .25-2.53 1a4.66 4.66 0 0 0 0 6.17l4.88 4.89c1.42 1.4 3 2.12 4.81 2.12a4.77 4.77 0 0 0 4.7-2.16c.72-.92.95-1.76.69-2.93a15.34 15.34 0 0 0 3.06-6.01A10 10 0 0 0 21 4.25a1.14 1.14 0 0 0-.08-1.87z"/>
        </svg>
    </div>
</footer>

<div class="bg-control">
    <div class="bg-label">BACKGROUND</div>
    <select class="bg-selector" id="bgSelector">
        <option value="default">Cosmic Dust</option>
        <option value="blue-purple">Deep Nebula</option>
        <option value="pink">Night Bloom</option>
        <option value="dark">Abyss Space</option>
        <option value="sunrise">Galactic Sunrise</option>
        <option value="abstract">Star Fragment</option>
    </select>
</div>

<script>
    document.addEventListener('DOMContentLoaded', function() {
        const canvas = document.getElementById('bg-canvas');
        const ctx = canvas.getContext('2d');
        let animationId;
        
        // Set canvas size to match the window
        function setCanvasSize() {
            canvas.width = window.innerWidth;
            canvas.height = window.innerHeight;
        }
        
        // Initialize the background with stars
        function initBackground() {
            setCanvasSize();
            
            // Dark space background
            ctx.fillStyle = '#050518';
            ctx.fillRect(0, 0, canvas.width, canvas.height);
            
            // Create stars
            ctx.fillStyle = 'rgba(255, 255, 255, 0.8)';
            const starCount = 200;
            
            for (let i = 0; i < starCount; i++) {
                const x = Math.random() * canvas.width;
                const y = Math.random() * canvas.height;
                const radius = Math.random() * 1.5;
                
                ctx.beginPath();
                ctx.arc(x, y, radius, 0, Math.PI * 2);
                ctx.fill();
            }
            
            // Create larger stars
            ctx.fillStyle = 'rgba(255, 255, 255, 0.95)';
            const bigStarCount = 20;
            
            for (let i = 0; i < bigStarCount; i++) {
                const x = Math.random() * canvas.width;
                const y = Math.random() * canvas.height;
                const radius = Math.random() * 2 + 1.5;
                
                ctx.beginPath();
                ctx.arc(x, y, radius, 0, Math.PI * 2);
                ctx.fill();
                
                // Glow effect
                const gradient = ctx.createRadialGradient(x, y, 0, x, y, radius * 3);
                gradient.addColorStop(0, 'rgba(255, 255, 255, 0.4)');
                gradient.addColorStop(1, 'rgba(255, 255, 255, 0)');
                ctx.fillStyle = gradient;
                
                ctx.beginPath();
                ctx.arc(x, y, radius * 3, 0, Math.PI * 2);
                ctx.fill();
            }
        }
        
        // Animation effect
        function animateBackground() {
            // Clear the canvas
            ctx.fillStyle = 'rgba(5, 5, 24, 0.15)';
            ctx.fillRect(0, 0, canvas.width, canvas.height);
            
            // Create new stars periodically
            if (Math.random() < 0.1) {
                createShootingStar();
            }
            
            // Animation loop
            animationId = requestAnimationFrame(animateBackground);
        }
        
        function createShootingStar() {
            const x = Math.random() * canvas.width;
            const y = 0;
            const size = Math.random() * 2 + 1;
            const speed = Math.random() * 5 + 5;
            
            let currentX = x;
            let currentY = y;
            
            function drawShootingStar() {
                ctx.beginPath();
                ctx.moveTo(currentX, currentY);
                currentX += speed / 2;
                currentY += speed;
                
                // Calculate glow gradient
                const gradient = ctx.createLinearGradient(currentX, currentY, currentX - 10, currentY - 20);
                gradient.addColorStop(0, 'rgba(120, 230, 255, 0.8)');
                gradient.addColorStop(1, 'transparent');
                ctx.strokeStyle = gradient;
                ctx.lineWidth = size;
                
                ctx.lineTo(currentX, currentY);
                ctx.stroke();
                
                // Continue until off screen
                if (currentY < canvas.height && currentX < canvas.width) {
                    requestAnimationFrame(drawShootingStar);
                }
            }
            
            drawShootingStar();
        }
        
        // Background selector functionality
        const bgSelector = document.getElementById('bgSelector');
        bgSelector.addEventListener('change', function() {
            // For demonstration purposes, we'll change the colors programatically
            // In a full implementation you might replace the entire background
            
            switch(this.value) {
                case 'blue-purple':
                    canvas.style.filter = "hue-rotate(180deg)";
                    break;
                case 'pink':
                    canvas.style.filter = "hue-rotate(300deg) saturate(2)";
                    break;
                case 'dark':
                    canvas.style.filter = "brightness(0.7)";
                    break;
                case 'sunrise':
                    canvas.style.filter = "hue-rotate(40deg) brightness(1.2)";
                    break;
                case 'abstract':
                    canvas.style.filter = "hue-rotate(120deg) contrast(1.5)";
                    break;
                default:
                    canvas.style.filter = "none";
            }
        });
        
        // Set up and start animation
        setCanvasSize();
        window.addEventListener('resize', () => {
            setCanvasSize();
            initBackground();
        });
        
        initBackground();
        animateBackground();
        
        // Floating particles
        const particles = document.querySelectorAll('.particle');
        particles.forEach(particle => {
            particle.style.animationDuration = Math.random() * 8 + 8 + 's';
            particle.style.animationDelay = Math.random() * -10 + 's';
        });
    });
</script>