Максимум веб информации Создать акаунт

Новогодняя HTML гирлянда со снежинками: создаём праздничное настроение на сайте

12 дек 2025
Дизайн и графика
43
0
Новогодняя HTML гирлянда со снежинками: создаём праздничное настроение на сайте

В преддверии новогодних праздников каждый владелец сайта задумывается о том, как придать своему ресурсу особое праздничное настроение. Предлагаем готовое решение — интерактивную HTML новогоднюю гирлянду с падающими снежинками, которая превратит обычный веб‑интерфейс в настоящую зимнюю сказку.

Что представляет собой решение HTML гирлянды

Основные элементы декора

Наш новогодний комплект включает два ключевых визуальных компонента:

  1. Мерцающая HTML гирлянда — ряд разноцветных огоньков в верхней части экрана, создающих эффект настоящей праздничной иллюминации.

  2. Падающий снег — анимированные снежинки разных форм и размеров, плавно спускающиеся по всей площади сайта.

Технические особенности

  • Полная совместимость с DLE 19 и другими CMS.

  • Отсутствие внешних зависимостей — работает на чистом CSS и jаvascript.

  • Адаптивность — корректно отображается на любых устройствах.

  • Оптимизированная производительность — не нагружает браузер.

Как это работает: технические детали

Гирлянда с огоньками для сайта

Каждый огонёк — это отдельный HTML‑элемент с уникальными характеристиками:

  • 5 цветов (красный, зелёный, синий, жёлтый, фиолетовый);

  • индивидуальная анимация мерцания с разной скоростью;

  • случайная задержка старта для асинхронного эффекта;

  • световые эффекты через box-shadow для объёмности.

Падающие снежинки

Механизм снегопада построен на динамическом создании элементов:

  • 7 вариантов символов снежинок (от классических до звёздочек);

  • рандомные параметры размера и скорости падения;

  • естественная физика движения с горизонтальным смещением;

  • автоматическое удаление после завершения анимации.

Преимущества решения

Для владельцев сайта

  • Простота внедрения — три блока кода без сложной настройки.

  • Гибкая кастомизация — легко изменить цвета, плотность снега, скорость анимации.

  • Низкое потребление ресурсов — не влияет на скорость загрузки.

  • Не мешает контенту — все элементы имеют pointer-events: none.

Для посетителей

  • Атмосферность — создаёт праздничное настроение без навязчивости.

  • Плавность анимации — нет рывков и задержек.

  • Адаптивность — красиво выглядит на любом экране.

  • Ненавязчивость — декор не перекрывает основной контент.

Пошаговая инструкция по установке

1. Добавление HTML‑разметки

Вставьте в шаблон перед </body>:

<div class="holiday-decor">
  <div class="garland"></div>
  <div class="snowfall"></div>
</div>

2. Подключение CSS‑стилей

<style>
/* Основной контейнер */
.holiday-decor {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9999;
  overflow: hidden;
}

/* Гирлянда (верхняя часть экрана) */
.garland {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 40px;
}

/* Общий стиль огонька */
.light {
  position: absolute;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  filter: brightness(1.3);
}

/* Цвета огоньков */
.light.red    { background: #ff3333; }
.light.green  { background: #33cc33; }
.light.blue   { background: #3366ff; }
.light.yellow { background: #ffff33; }
.light.purple { background: #cc33ff; }

/* Анимации мерцания (разные для каждого типа) */
@keyframes flicker-red {
  0%, 100% { opacity: 0.4; box-shadow: 0 0 8px rgba(255, 51, 51, 0.6); }
  25% { opacity: 1; box-shadow: 0 0 12px rgba(255, 51, 51, 0.9); }
  50% { opacity: 0.5; }
}

@keyframes flicker-green {
  0%, 100% { opacity: 0.3; box-shadow: 0 0 6px rgba(51, 204, 51, 0.5); }
  30% { opacity: 0.9; box-shadow: 0 0 10px rgba(51, 204, 51, 0.8); }
  60% { opacity: 0.4; }
}

@keyframes flicker-blue {
  0%, 100% { opacity: 0.5; box-shadow: 0 0 7px rgba(51, 102, 255, 0.6); }
  20% { opacity: 0.8; box-shadow: 0 0 11px rgba(51, 102, 255, 0.9); }
  40% { opacity: 0.3; }
}

@keyframes flicker-yellow {
  0%, 100% { opacity: 0.2; box-shadow: 0 0 5px rgba(255, 255, 51, 0.4); }
  15% { opacity: 0.9; box-shadow: 0 0 9px rgba(255, 255, 51, 0.8); }
  45% { opacity: 0.7; }
  75% { opacity: 0.5; }
}

@keyframes flicker-purple {
  0%, 100% { opacity: 0.4; box-shadow: 0 0 6px rgba(204, 51, 255, 0.5); }
  22% { opacity: 0.8; box-shadow: 0 0 10px rgba(204, 51, 255, 0.8); }
  55% { opacity: 0.3; }
}

/* Применение анимаций к классам */
.light.red    { animation: flicker-red 1.8s infinite ease-in-out; }
.light.green  { animation: flicker-green 2.1s infinite ease-in-out; }
.light.blue   { animation: flicker-blue 1.9s infinite ease-in-out; }
.light.yellow { animation: flicker-yellow 2.3s infinite ease-in-out; }
.light.purple { animation: flicker-purple 2s infinite ease-in-out; }

/* Контейнер для снежинок */
.snowfall {
  position: absolute;
  inset: 0;
}

/* Снежинка */
.snowflake {
  position: absolute;
  color: white;
  font-family: Arial, sans-serif;
  font-size: 18px;
  opacity: 0;
  text-shadow: 0 0 2px rgba(0, 0, 0, 0.4);
  animation: fall 12s linear forwards;
}

/* Анимация падения снежинки */
@keyframes fall {
  0% {
    transform: translateY(-10vh) translateX(0);
    opacity: 0;
  }
  10% {
    opacity: 0.7;
  }
  100% {
    transform: translateY(110vh) translateX(var(--x-offset));
    opacity: 0;
  }
}

</style>

Добавьте в файл стилей все правила для классов .holiday-decor, .garland, .light и .snowflake.

3. Внедрение jаvascript‑кода

Разместите скрипт перед </body>, убедившись, что:

<script>
document.addEventListener('DOMContentLoaded', () => {
  const garland = document.querySelector('.garland');
  const snowfall = document.querySelector('.snowfall');

  // Типы огоньков для гирлянды
  const lightTypes = ['red', 'green', 'blue', 'yellow', 'purple'];

  // Создаём гирлянду (20 огоньков)
  for (let i = 0; i < 20; i++) {
    const light = document.createElement('div');
    light.className = `light ${lightTypes[i % lightTypes.length]}`;

    // Случайная позиция по горизонтали (равномерное распределение)
    const xPos = (i / 19) * 100;
    light.style.left = `calc(${xPos}% - 4px)`; // Центрируем (ширина 8px)

    // Небольшая вертикальная «волна» для естественности
    light.style.top = `${15 + Math.random() * 10}px`;

    // Задержка для асинхронного старта анимации
    light.style.animationDelay = `${Math.random() * 1}s`;

    garland.appendChild(light);
  }

  // Символы снежинок
  const snowSymbols = ['❄', '❅', '❆', '☆', '★', '*', '.'];

  // Функция создания снежинки
  const createSnowflake = () => {
    const snowflake = document.createElement('div');
    snowflake.className = 'snowflake';

    // Случайный символ
    snowflake.textContent = snowSymbols[Math.floor(Math.random() * snowSymbols.length)];

    // Параметры
    const size = Math.random() * 0.8 + 0.6; // 0.6–1.4em
    const duration = Math.random() * 6 + 9; // 9–15 сек
    const xOffset = (Math.random() - 0.5) * 120; // Смещение по X

    // Стили
    snowflake.style.fontSize = `${size}em`;
    snowflake.style.left = `${Math.random() * window.innerWidth}px`;
    snowflake.style.setProperty('--x-offset', `${xOffset}px`);
    snowflake.style.animationDuration = `${duration}s`;

    snowfall.appendChild(snowflake);


    // Удаление после анимации
    setTimeout(() => snowflake.remove(), (duration + 1) * 1000);
  };

  // Запуск снегопада (каждые 400 мс)
  setInterval(createSnowflake, 400);

  // Дополнительно: плавное появление декора
  document.querySelectorAll('.holiday-decor > *').forEach(el => {
    el.style.opacity = 0;
    setTimeout(() => {
      el.style.transition = 'opacity 1.5s';
      el.style.opacity = 1;
    }, 500);
  });
});
</script>
  • все селекторы соответствуют HTML;

  • пути к символам снежинок корректны.

Тонкая настройка под ваш бренд

Изменение цветовой палитры

Замените HEX‑коды в классах .light.red, .light.green и др. на фирменные цвета вашего сайта.

Регулировка плотности декора

  • Гирлянда: измените количество итераций в цикле for (по умолчанию 20).

  • Снег: отрегулируйте интервал в setInterval() (чем больше значение, тем реже падают снежинки).

Скорость анимации

Поменяйте значения в @keyframes (например, 1.8s на 2.5s) для более медленного/быстрого мерцания.

Рекомендации по использованию

Оптимальные сценарии

  • Новогодние акции — подчеркнёт сезонные предложения.

  • Праздничные лендинги — создаст нужную атмосферу.

  • Корпоративные сайты — добавит человечности в официальный стиль.

Когда лучше отключить

  • В рабочих зонах с высокой концентрацией внимания.

  • На страницах с тяжёлой графикой (чтобы не перегружать GPU).

  • Для пользователей с чувствительностью к мерцанию (предусмотрите переключатель).

Будущие улучшения

Планируемые фичи

  • Режим «Эко» — снижение нагрузки на слабых устройствах.

  • Настройка через админ‑панель — визуальный редактор декора.

  • Сезонные вариации — смена тематики (весенние цветы, осенние листья).

Возможности кастомизации

  • Добавление звуковых эффектов.

  • Интерактивные элементы (например, «рассыпающиеся» при клике снежинки).

  • Интеграция с календарём событий (автоматическое включение/выключение).

Предложенное решение — это баланс эстетики и производительности. Оно:

  • мгновенно создаёт праздничное настроение;

  • не требует глубоких знаний программирования для внедрения;

  • легко адаптируется под любые задачи.

Попробуйте внедрить новогоднюю гирлянду со снежинками — и ваш сайт заиграет новыми красками в преддверии праздников!

С наступающим Новым годом! Пусть ваш онлайн‑проект сияет ярко, как праздничная иллюминация. 🎄

Подписка на публикацию новости
Демо
Поблагодарили: 0
Пока никто не поблагодарил
Комментарии
Минимальная длина комментария — 50 знаков. Комментарии модерируются.

Смотрите также в категории: Дизайн и графика

Мы используем файлы cookie
Сайт (WEB-MAXS.RU) использует файлы cookies и сервисы сбора технических данных посетителей (данные об IP-адресе, местоположении и др.) для обеспечения работоспособности и улучшения качества обслуживания. Продолжая использовать наш сайт, вы автоматически соглашаетесь с использованием данных технологий.
Лучшие предложения для Вашего Wordpress сайта!

Может быть интересно!

Лучшие предложения для Вашего Wordpress сайта!

Выбирайте то,
что действительно нужно!