Различные эффекты всегда украшали сайт, но и с ними не стоит перебарщивать, с появлением css3 мы получили достаточно широкие возможности для воплощения своих креативных идей. Каскадные таблицы позволят создать уникальные вещи на сайте, все ограничивается только воображением, ну и конечно умением разработчика. В данном уроке мы рассмотрим как создать замечательный объемный шар, который будет прыгать, при этом создавая эффект трехмерности и изменения формы от прикосновения с поверхностью.

Данный эффект наглядно демонстрирует возможности трансформаций CSS3. Следует заметить, что трансформации будут работать только в браузерах поддерживающих свойства CSS3.

Шаг 1. HTML

Начнем с разметки HTML, У нас есть три простых элемента div. “#ballWrapper” — основной контейнер, который содержит наш мяч.

Данный элемент div определяет положение мяча и высоту на экране. Элемент “#ball” формирует разметку для мяча, а “#ballShadow” содержит тень отдельно.

Шаг 2.  CSS

Сначала установим ширину и высоту основного контейнера. Он будет занимать положение по центру экрана:

Координаты контейнера имеют значения ’50%’, а для полей используются отрицательные значения равные половине высоты и ширины. Так мяч центрируется на экране.

Мы устанавливаем для мяча равные ширину и высоту, а для свойства ‘border-radius’ значение ’70px’ (которое является половиной оригинальной высоты и шириной). В итоге получается круглая форма.

Элемент получает линейный фон и 3 разных уровня теней, чтобы сформировать 3D эффект. Первый уровень тени предназначен для формирования темной зоны внизу мяча. Второй уровень формирует рассеянное свечение также внизу мяча. А третий уровень формирует размытую тень позади контура мяча

Если взглянуть на мяч, то видна небольшая овальная светлая форма, которая формирует эффект отражения. Вот код, который его формирует:

Используется псевдо-элемент CSS ::after, который получает линейный градиент с непрозрачностью. В дополнение устанавливаем скругленные углы рамки ’40px / 20px’ формируя овальную форму. Теперь установим тень мяча:

Здесь снова используются свойства для центрирования тени. Но она смещается вниз элемента ‘#ballWrapper’. Также добавляет полупрозрачный фон, тень и скругленная рамка.

Начнем с добавления свойства анимации для всего мяча:

Здесь определяется имя анимации (jump), ее длительность (1 секунда) и количество раз выполнения ( в нашем случае значение ‘infinite’ определяет бесконечное выполнение анимации).

Здесь происходит работа со свойством ‘top’ мяча. Начиная с 0 до 160 и назад до 0. В середине анимации также также изменяется свойство ‘border-radius’ — так формируется «удар» мяча о фон.

Здесь используются те же значения, что и для мяча, только с другой анимацией, которая называется shrink:

В завершении добавим эффект для нажатия кнопки мыши. Мяч будет удаляться от нас. Для достижения эффекта используем псевдо-класс ‘:active‘, добавляется трансформация и изменение свойства ‘scale’:

Материал взят из зарубежного источника. И представлен исключительно в ознакомительных целях.

Читайте также: