23 декабря 2024 г. (изменено: 23 декабря 2024 г.)

Канал: @cherkashindev

1 461

Когда говорят об истории JavaScript часто упоминают, каким незаменимым он был при украшении сайтов снежинками ❄️ в канун Нового года 🎄.

А между тем, Новый год уже на следующей неделе, поэтому пора поспешить и принарядить свои сайты.

🗣️ Я попросил ChatGPT:

  • на основе существующего логотипа сгенерировать новогодний
  • написать код для реализации тех самых снежинок

Я сравнил код ChatGPT с кодом из статьи Доки “Снежинки” от Алёны Батицкой, взял от обоих решений лучшее, и вот что получилось.

✍️ Кратко о реализации:

  • Берём символы Unicode для снежинок — ❄ ❅ ❆

  • В разметке создаём нужное количество снежинок — у меня 120

  • Каждая снежинка состоит из 2-х частей

    • контейнер — для анимации падения
    • сама снежинка — для анимации поворота
  • Все снежинки кладём в один контейнер и выставляем ему pointer-events: none, чтобы не мешать взаимодействию со страницей

  • Контейнеру выставляем flex-direction: row, чтобы равномерно распределить снежинки по экрану

  • Начальное и конечное положения снежинок находится немного за пределами экрана, чтобы они плавно появлялись и исчезали

  • Выставляем случайным образом:

    • размер снежинок (`font-size`) — от 0.7em до 1.5em
    • длительность анимации падения — от 10 до 30 секунд
    • задержку анимации — от 1 до 30 секунд
  • Задержка анимации нужна, чтобы снежинки падали постепенно

  • Выставляем разные цвета снежинок

  • Исходники здесь 💾

  • Демо здесь 🖥️

@cherkashindev

👍 22 3 👏 1