Dienstag, 4 November 2025

Top 5 diese Woche

Ähnliche Tutorials

Weihnachtlich

Hier haben wir ein weihnachtliches JavaScript mit festlicher Farbpalette, Schneeflocken, funkelnden Weihnachtslichtern, einem Weihnachtsgruß in Schreibmaschinen Animation und leiser Glocken-Animation erstellt.

<!doctype html>
<html lang="de">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>🎄 Frohe Weihnachten 🎄</title>
  <style>
    html, body {
      margin: 0;
      padding: 0;
      height: 100%;
      font-family: "Segoe UI", sans-serif;
      color: #fff;
      background: radial-gradient(circle at top, #10325c, #0a1d35 70%);
      overflow: hidden;
    }

    canvas {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
      z-index: 1;
    }

    .lights {
      position: fixed;
      top: 20px;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      gap: 10px;
      z-index: 10;
    }

    .light {
      width: 20px;
      height: 30px;
      border-radius: 50% 50% 40% 40%;
      box-shadow: 0 0 20px rgba(255,255,255,0.8);
      animation: blink 1.5s infinite alternate;
    }

    @keyframes blink {
      from { opacity: 1; transform: translateY(0); }
      to { opacity: 0.3; transform: translateY(4px); }
    }

    .card {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      text-align: center;
      background: rgba(255,255,255,0.1);
      padding: 2rem 3rem;
      border-radius: 15px;
      backdrop-filter: blur(6px);
      box-shadow: 0 0 30px rgba(255,255,255,0.2);
      z-index: 5;
    }

    h1 {
      font-size: 2.5rem;
      color: #ffd700;
      text-shadow: 0 0 20px #ff4d4d, 0 0 10px #ffd700;
      margin-bottom: 10px;
    }

    p {
      font-size: 1.1rem;
      color: #f2f2f2;
      margin-top: 0.5rem;
    }

    .bells {
      font-size: 2rem;
      animation: swing 1.5s infinite ease-in-out alternate;
      display: inline-block;
    }

    @keyframes swing {
      from { transform: rotate(-10deg); }
      to { transform: rotate(10deg); }
    }

    #toggleSnow {
      margin-top: 1.5rem;
      background: #ff4d4d;
      color: white;
      padding: 0.7rem 1.2rem;
      border: none;
      border-radius: 8px;
      font-weight: bold;
      cursor: pointer;
      box-shadow: 0 0 10px rgba(255,77,77,0.6);
      transition: background 0.3s ease;
    }

    #toggleSnow:hover {
      background: #ff7373;
    }
  </style>
</head>
<body>

  <div class="lights" id="lights"></div>
  <canvas id="snow"></canvas>

  <div class="card">
    <div class="bells">🔔</div>
    <h1 id="greeting"></h1>
    <p>Möge euer Code fehlerfrei und euer Herz leicht sein!</p>
    <button id="toggleSnow">❄️ Schnee anhalten ❄️</button>
  </div>

  <script>
    // Lichterkette
    const lights = document.getElementById('lights');
    const colors = ['#ff4d4d', '#ffd700', '#4dff4d', '#4da6ff', '#ff66cc'];
    for (let i = 0; i < 15; i++) {
      const light = document.createElement('div');
      light.className = 'light';
      light.style.background = colors[i % colors.length];
      light.style.animationDelay = `${Math.random() * 1.5}s`;
      lights.appendChild(light);
    }

    // Schnee
    const canvas = document.getElementById('snow');
    const ctx = canvas.getContext('2d');
    let width, height, snowflakes = [];
    let snowing = true;

    function resize() {
      width = canvas.width = window.innerWidth;
      height = canvas.height = window.innerHeight;
      snowflakes = Array.from({ length: Math.floor(width / 3) }, () => ({
        x: Math.random() * width,
        y: Math.random() * height,
        r: Math.random() * 3 + 1,
        d: Math.random() * 1 + 0.5
      }));
    }

    window.addEventListener('resize', resize);
    resize();

    function drawSnow() {
      ctx.clearRect(0, 0, width, height);
      ctx.fillStyle = "rgba(255,255,255,0.8)";
      ctx.beginPath();
      for (const f of snowflakes) {
        ctx.moveTo(f.x, f.y);
        ctx.arc(f.x, f.y, f.r, 0, Math.PI * 2);
      }
      ctx.fill();
      updateSnow();
    }

    function updateSnow() {
      for (const f of snowflakes) {
        f.y += f.d;
        if (f.y > height) {
          f.y = 0;
          f.x = Math.random() * width;
        }
      }
    }

    function animateSnow() {
      if (snowing) drawSnow();
      requestAnimationFrame(animateSnow);
    }

    animateSnow();

    document.getElementById('toggleSnow').addEventListener('click', function() {
      snowing = !snowing;
      this.textContent = snowing ? '❄️ Schnee anhalten ❄️' : '❄️ Schnee starten ❄️';
    });

    // Schreibmaschinen-Effekt
    const greeting = document.getElementById('greeting');
    const text = "🎅 Frohe Weihnachten 🎅";
    let i = 0;
    function type() {
      greeting.textContent = text.slice(0, i++);
      if (i <= text.length) setTimeout(type, 120);
    }
    type();
  </script>
</body>
</html>
Vorheriges Tutorial
Nächstes Tutorial

Lesetipps für dich