网页升级或即将到来页面(特效版)

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>欢迎来访</title>
    <style>
        body, html {
            margin: 0;
            padding: 0;
            width: 100%;
            height: 100%;
            display: flex;
            justify-content: center;
            align-items: center;
            background: linear-gradient(120deg, #ff9a9e, #fad0c4, #fbc2eb, #a18cd1, #fad0c4);
            background-size: 400% 400%;
            animation: gradientBG 20s ease infinite;
            font-family: Arial, sans-serif;
            overflow: hidden;
            position: relative;
        }

        @keyframes gradientBG {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        .time-container {
            text-align: center;
            background: rgba(255, 255, 255, 0.2);
            padding: 40px 60px;
            border-radius: 20px;
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
            color: #fff;
            backdrop-filter: blur(15px);
            position: relative;
            transition: transform 0.3s;
        }

        .time-container:hover {
            transform: scale(1.05);
        }

        .time-container h1 {
            font-size: 3rem;
            margin: 0;
            padding: 0;
            letter-spacing: 3px;
            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
        }

        .time-container p {
            font-size: 1.6rem;
            margin: 5px 0;
            letter-spacing: 1px;
            text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
        }

        @media (max-width: 768px) {
            .time-container {
                padding: 20px 30px;
            }
            .time-container h1 {
                font-size: 2.2rem;
            }
            .time-container p {
                font-size: 1.2rem;
            }
        }

        .effect {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            overflow: hidden;
        }

        .particle, .floating-light, .shooting-star, .firefly, .falling-star, .star, .light-beam, .bubble, .light-ring {
            position: absolute;
            border-radius: 50%;
            pointer-events: none;
        }

        /* 统一粒子样式 */
        .particle {
            background: rgba(255, 255, 255, 0.2);
            animation: moveParticles 20s linear infinite, rotateParticles 15s linear infinite;
        }

        .particle.small { width: 5px; height: 5px; background: rgba(255, 255, 255, 0.3); }
        .particle.medium { width: 12px; height: 12px; background: rgba(255, 200, 200, 0.4); }
        .particle.large { width: 18px; height: 18px; background: rgba(200, 255, 200, 0.4); }
        .particle.extra-large { width: 25px; height: 25px; background: rgba(200, 200, 255, 0.4); }

        @keyframes moveParticles {
            0% { transform: translateY(-10%) translateX(0); opacity: 0.7; }
            100% { transform: translateY(100vh) translateX(calc(10vw * var(--direction))); opacity: 0; }
        }

        @keyframes rotateParticles {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        /* 浮动光点 */
        .floating-light {
            width: 60px; height: 60px;
            background: radial-gradient(circle, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 60%);
            animation: floating 10s ease-in-out infinite;
            opacity: 0.7;
        }

        @keyframes floating {
            0%, 100% { transform: translateY(-20px) translateX(-20px); opacity: 0.5; }
            50% { transform: translateY(20px) translateX(20px); opacity: 1; }
        }

        /* 流星 */
        .shooting-star {
            width: 4px; height: 60px;
            background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.7));
            animation: shooting 5s ease-in-out infinite;
            opacity: 0.8;
        }

        @keyframes shooting {
            0% { transform: translateY(-10%) translateX(0) rotate(45deg); opacity: 0; }
            50% { opacity: 1; }
            100% { transform: translateY(120vh) translateX(40vw) rotate(45deg); opacity: 0; }
        }

        /* 萤火虫 */
        .firefly {
            width: 8px; height: 8px;
            background: rgba(255, 255, 150, 0.8);
            animation: fireflyBlink 3s ease-in-out infinite, fireflyMove 12s linear infinite;
            opacity: 0.6;
        }

        @keyframes fireflyBlink {
            0%, 100% { opacity: 0; }
            50% { opacity: 1; }
        }

        @keyframes fireflyMove {
            0% { transform: translateY(0) translateX(0); }
            100% { transform: translateY(-50vh) translateX(50vw); }
        }

        /* 流星雨 */
        .falling-star {
            width: 10px; height: 10px;
            background: rgba(255, 255, 255, 0.5);
            animation: fallingStar 15s linear infinite;
        }

        @keyframes fallingStar {
            0% { transform: translateY(-10%); }
            100% { transform: translateY(110vh); }
        }

        /* 星星背景 */
        .starfield {
            display: flex;
            flex-wrap: wrap;
            position: absolute;
            top: 0; left: 0;
            width: 100%; height: 100%;
            overflow: hidden;
        }

        .star {
            width: 2px; height: 2px;
            background: rgba(255, 255, 255, 0.8);
            animation: starTwinkle 2s infinite;
        }

        @keyframes starTwinkle {
            0%, 100% { opacity: 0.7; }
            50% { opacity: 1; }
        }

        /* 光束 */
        .light-beam {
            width: 2px; height: 100%;
            background: rgba(255, 255, 255, 0.4);
            animation: beamMove 10s linear infinite;
            transform-origin: top;
        }

        @keyframes beamMove {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        /* 星云 */
        .nebula {
            background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 70%);
            animation: nebulaRotate 30s linear infinite;
        }

        @keyframes nebulaRotate {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        /* 气泡 */
        .bubble {
            width: 20px; height: 20px;
            background: rgba(255, 255, 255, 0.4);
            animation: bubbleFloat 8s ease-in infinite;
        }

        @keyframes bubbleFloat {
            0% { transform: translateY(0) scale(1); opacity: 0.7; }
            50% { transform: translateY(-50vh) scale(1.2); opacity: 0.4; }
             100% { transform: translateY(-100vh) scale(1); opacity: 0; }
        }

        /* 光环 */
        .light-ring {
            width: 80px; height: 80px;
            border: 2px solid rgba(255, 255, 255, 0.5);
            border-radius: 50%;
            position: absolute;
            top: 50%; left: 50%;
            transform: translate(-50%, -50%);
            animation: ringPulse 3s infinite;
            opacity: 0.5;
        }

        @keyframes ringPulse {
            0% { transform: translate(-50%, -50%) scale(1); opacity: 0.5; }
            50% { transform: translate(-50%, -50%) scale(1.5); opacity: 0.2; }
            100% { transform: translate(-50%, -50%) scale(1); opacity: 0.5; }
        }

        /* 鼠标光晕效果 */
        .cursor-glow {
            width: 30px; height: 30px;
            background: rgba(255, 255, 255, 0.5);
            border-radius: 50%;
            box-shadow: 0 0 20px rgba(255, 255, 255, 0.6);
            pointer-events: none;
            z-index: 1000;
            transform: translate(-50%, -50%);
            transition: transform 0.1s ease;
        }

        /* 涟漪效果 */
        .ripple {
            position: absolute;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.3);
            pointer-events: none;
            animation: rippleAnimation 0.6s ease-out;
        }

        @keyframes rippleAnimation {
            0% { transform: scale(0); opacity: 1; }
            100% { transform: scale(4); opacity: 0; }
        }
    </style>
</head>
<body>
    <div class="time-container">
        <p>当前日期和时间</p>
        <h1 id="datetime"></h1>
    </div>
    <div class="effect particles" id="particles"></div>
    <div class="effect floating-lights" id="floatingLights"></div>
    <div class="effect shooting-stars" id="shootingStars"></div>
    <div class="effect fireflies" id="fireflies"></div>
    <div class="effect falling-stars" id="fallingStars"></div>
    <div class="effect starfield" id="starfield"></div>
    <div class="effect light-beams" id="lightBeams"></div>
    <div class="effect nebula" id="nebula"></div>
    <div class="effect bubbles" id="bubbles"></div>
    <div class="effect light-diffusion" id="lightDiffusion"></div>
    <div class="effect fog" id="fog"></div>
    <div class="effect cursor-glow" id="cursorGlow"></div>
    <script>
        function updateTime() {
            const now = new Date();
            const formattedTime = now.toLocaleString('zh-CN', {
                year: 'numeric',
                month: '2-digit',
                day: '2-digit',
                hour: '2-digit',
                minute: '2-digit',
                second: '2-digit'
            });
            document.getElementById('datetime').innerText = formattedTime;
        }

        function createParticles() {
            const particlesContainer = document.getElementById('particles');
            const numParticles = 50;

            for (let i = 0; i < numParticles; i++) {
                const particle = document.createElement('div');
                particle.className = 'particle';
                const sizeClass = ['small', 'medium', 'large', 'extra-large'][Math.floor(Math.random() * 4)];
                particle.classList.add(sizeClass);
                particle.style.left = `${Math.random() * 100}vw`;
                particle.style.animationDuration = `${Math.random() * 20 + 10}s`;
                particle.style.animationDelay = `${Math.random() * 5}s`;
                particle.style.setProperty('--direction', Math.random() > 0.5 ? 1 : -1);
                particlesContainer.appendChild(particle);
            }
        }

        function createFloatingLights() {
            const floatingLightsContainer = document.getElementById('floatingLights');
            const numLights = 10;

            for (let i = 0; i < numLights; i++) {
                const light = document.createElement('div');
                light.className = 'floating-light';
                light.style.top = `${Math.random() * 100}vh`;
                light.style.left = `${Math.random() * 100}vw`;
                light.style.animationDuration = `${Math.random() * 15 + 5}s`;
                light.style.animationDelay = `${Math.random() * 10}s`;
                floatingLightsContainer.appendChild(light);
            }
        }

        function createShootingStars() {
            const shootingStarsContainer = document.getElementById('shootingStars');
            const numStars = 5;

            for (let i = 0; i < numStars; i++) {
                const star = document.createElement('div');
                star.className = 'shooting-star';
                star.style.left = `${Math.random() * 100}vw`;
                star.style.animationDuration = `${Math.random() * 7 + 3}s`;
                star.style.animationDelay = `${Math.random() * 10}s`;
                shootingStarsContainer.appendChild(star);
            }
        }

        function createFireflies() {
            const firefliesContainer = document.getElementById('fireflies');
            const numFireflies = 20;

            for (let i = 0; i < numFireflies; i++) {
                const firefly = document.createElement('div');
                firefly.className = 'firefly';
                firefly.style.top = `${Math.random() * 100}vh`;
                firefly.style.left = `${Math.random() * 100}vw`;
                firefly.style.animationDuration = `${Math.random() * 10 + 5}s`;
                firefly.style.animationDelay = `${Math.random() * 5}s`;
                firefliesContainer.appendChild(firefly);
            }
        }

        function createFallingStars() {
            const fallingStarsContainer = document.getElementById('fallingStars');
            const numFallingStars = 15;

            for (let i = 0; i < numFallingStars; i++) {
                const fallingStar = document.createElement('div');
                fallingStar.className = 'falling-star';
                fallingStar.style.left = `${Math.random() * 100}vw`;
                fallingStar.style.animationDuration = `${Math.random() * 20 + 10}s`;
                fallingStar.style.animationDelay = `${Math.random() * 10}s`;
                fallingStarsContainer.appendChild(fallingStar);
            }
        }

        function createStars() {
            const starfieldContainer = document.getElementById('starfield');
            const numStars = 100;

            for (let i = 0; i < numStars; i++) {
                const star = document.createElement('div');
                star.className = 'star';
                star.style.left = `${Math.random() * 100}vw`;
                star.style.top = `${Math.random() * 100}vh`;
                star.style.width = `${Math.random() * 2 + 1}px`;
                star.style.height = `${Math.random() * 2 + 1}px`;
                star.style.animationDuration = `${Math.random() * 2 + 1}s`;
                starfieldContainer.appendChild(star);
            }
        }

        function createLightBeams() {
            const lightBeamsContainer = document.getElementById('lightBeams');
            const numBeams = 5;

            for (let i = 0; i < numBeams; i++) {
                const lightBeam = document.createElement('div');
                lightBeam.className = 'light-beam';
                lightBeam.style.left = `${Math.random() * 100}vw`;
                lightBeam.style.transform = `rotate(${Math.random() * 360}deg)`;
                lightBeam.style.animationDuration = `${Math.random() * 10 + 5}s`;
                lightBeamsContainer.appendChild(lightBeam);
            }
        }

        function createNebula() {
            const nebulaContainer = document.getElementById('nebula');
        }

        function createBubbles() {
            const bubblesContainer = document.getElementById('bubbles');
            const numBubbles = 30;

            for (let i = 0; i < numBubbles; i++) {
                const bubble = document.createElement('div');
                bubble.className = 'bubble';
                bubble.style.left = `${Math.random() * 100}vw`;
                bubble.style.bottom = `${Math.random() * 10}vh`;
                bubble.style.animationDuration = `${Math.random() * 8 + 4}s`;
                bubble.style.animationDelay = `${Math.random() * 5}s`;
                bubblesContainer.appendChild(bubble);
            }
        }

        function createLightDiffusion() {
            const lightDiffusionContainer = document.getElementById('lightDiffusion');
        }

        function createFog() {
            const fogContainer = document.getElementById('fog');
        }

        function updateCursorGlow(e) {
            const cursorGlow = document.getElementById('cursorGlow');
            cursorGlow.style.top = `${e.clientY}px`;
            cursorGlow.style.left = `${e.clientX}px`;
        }

        function createRippleEffect(e) {
            const ripple = document.createElement('div');
            ripple.className = 'ripple';
            ripple.style.top = `${e.clientY}px`;
            ripple.style.left = `${e.clientX}px`;
            document.body.appendChild(ripple);

            ripple.addEventListener('animationend', () => {
                ripple.remove();
            });
        }

        document.addEventListener('mousemove', updateCursorGlow);
        document.addEventListener('click', createRippleEffect);

        updateTime();
        createParticles();
        createFloatingLights();
        createShootingStars();
        createFireflies();
        createFallingStars();
        createStars();
        createLightBeams();
        createNebula();
        createBubbles();
        createLightDiffusion();
        createFog();
        setInterval(updateTime, 1000);
    </script>
</body>
</html>