Снегопад на сайте
Вот уже скоро наступят новогодние праздники и рождество. Медленно падающий пушистый снег является одним из символов наступающего торжества. В данном уроке мы представим очень простую технику CSS для вывода снегопада на вашем сайте. Кроме отличного эффекта вы получите представление о работе с множественными фонами и кадрами анимации в CSS.
Примечание
Поддержка кадров анимации, к сожалению, далека от совершенства. Поэтому, если вы ищете решение, которое будет работать в большом количестве браузеров, вам следует поискать плагин jQuery, например такой. Ну а те, кто хочет расширить свои знания по CSS, могут продолжать чтение урока.
В примерах кода не будут использоваться префиксы браузеров для наглядности.
Использование фона
Нужно подготовить три изображения со снегопадом формата PNG. Пример такого изображения приведен ниже, прозрачный фон заменен черным цветом для наглядности. На нем присутствуют простые круги (можно подключить фантазию и изобразить ажурные снежинки) белого цвета на прозрачном фоне. На всех трех изображениях снежинки надо сделать разных размеров, чтобы потом создавалась иллюзия перспективы.
Данные изображения будут использоваться в качестве фона в CSS.
Применение множественного фона абсолютно идентично единичному. Разница заключается только в том, что вы ставите запятую после URL первого изображения и добавляете еще одно. Вот как будет выглядеть код. Помните, что изображения по умолчанию будут повторяться.
body { background-color: #6b92b9; background-image: url('snow1.png'), url('snow2.png'), url('snow3.png'); }
Множественные фоны отлично поддерживаются и беспокоиться стоит только о старых версиях IE. Как и все новое в CSS множественные фоны поддерживаются начиная с версии IE9.
Устанавливаем кадры анимации
@keyframes snow { 0% {background-position: 0px 0px, 0px 0px, 0px 0px;} 100% {background-position: 500px 1000px, 400px 400px, 300px 300px;} }
“@keyframes” является ключевым словом для определения последовательности кадров, “snow” - имя данной последовательности. Вы можете установить любое понравившееся имя.
Затем мы определяем два кадра анимации. Первый задает вид страницы до начала анимации, второй - после ее завершения. В начале все изображения фона помещаются в верхний левый угол страницы с помощью установки координат “0px 0px”. В конце каждое изображение будет передвинуто в новое положение. Также, как и при определении фона, координаты для каждого изображения просто разделяются запятыми.
Логика позиционирования
Положение каждого изображения в конце анимации кажется выбранным произвольно. Но в действительности все установлено преднамеренно. Чтобы заставить анимацию работать правильно нужно разобраться с несколькими моментами.
Причина, по которой выбраны кадры анимации вместо простого и лучше поддерживаемого свойства transition, заключается в том, что анимация, основанная на кадрах может повторяться бесконечно. Поэтому нужно помнить, что как только анимация закончит воспроизведение последнего кадра, она начнется снова. Если не уделить должного внимания позиционированию, то в момент перехода на экране будет виден рывок кадров.
Трюк заключается в том, чтобы установить размер изображения так, чтобы последний кадр соответствовал первому. В результате получится иллюзия бесконечного плавного движения. Второе изображение имеет размер 400px Х 400px, поэтому второй фон смещается на 400px вниз в ходе анимации. А а третий фон по томуже принципу смещается на 300px. Для первого изображения используется другой трюк. Его нужно смещать несколько быстрее, поэтому его высота удваивается (1000px). Благодаря умножению высоты на целое число, последний кадр соответствует первому.
Таким же образом смещаются изображения и по горизонтали. Создается иллюзия снегопада.
Реализация анимации
Заключительным шагом будет установка в селекторе body свойства “animation”. Первым в нем указано имя последовательности кадров "snow", затем длительность анимации 20 секунд, потом устанавливается функция времени (linear) и завершает определение бесконечного проигрывания.
body { background-color: #6b92b9; background-image: url('snow.png'), url('snow3.png'), url('snow2.png'); animation: snow 20s linear infinite; }
Готово!
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/rmI0ImMHZJ0/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-05-06 » Как настраивать конверсионные стратегии: работа над ошибками
- 2024-04-22 » Комментирование кода и генерация документации в PHP
- 2024-04-22 » SEO в России и на Западе: в чем основные отличия
- 2024-04-22 » SEO для международного масштабирования
- 2024-04-22 » Как использовать XML-карты для продвижения сайта
- 2024-04-22 » Цифровой маркетинг: инструменты для продвижения и рекламы в 2024 году
- 2024-04-22 » Что такое CSS-модули и зачем они нам?
- 2024-04-17 » 23 сервиса для эффективного экспресс-аудита любого сайта
- 2024-04-08 » Яндекс переходит на новую версию Wordstat
- 2024-04-08 » Яндекс интегрировал в свой облачный сервис эмпатичную нейросеть
- 2024-04-08 » Новая версия нейросети Claude превзошла по мощности аналоги Google и OpenAI
- 2024-04-08 » Как пользоваться GPT 4 и Claude бесплатно и без VPN
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
"Самый чепуховый и бесперспективный проект, но уже запущенный и работающий в Сети, принесет гораздо больше результатов и прибыли, чем самый совершенный проект, который из-за своего постоянного предстартового совершенствования никогда не будет запущен." |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.