网页升级或即将到来页面(特效版)
<!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>