Эффект отскока на анимации CSS3
В данном уроке мы создадим визуальный эффект с помощью анимаций CSS3. В итоге должна получиться информационная панель, которая появляется с "отскоком".
Начало
Создаим документ HTML и добавим в него следующую структуру разметки для информационной панели.
<div class="css3-notification"> <p>Сообщение, которое появляется с отскоком.</p> </div>
Добавим стили для формирования внешнего вида панели:
.css3-notification { font-size: .8em; text-align: center; padding: 10px; background-color: #111; color: #fff; box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, .3); text-transform: uppercase; position: relative; font-weight: bold; }
В браузере наша панель должна выглядеть так:
Создаем кадры анимации CSS3
Основная идея заключается в формировании серии последовательных отскоков с уменьшающейся амплитудой до полной остановки объекта.
Шаг 1. Создаем кадры анимации
Начнем с создания кадров анимации CSS3. В нашем примере набор кадров имеет название bounce
.
В нашем уроке используется стандартный синтаксис @keyframe
из стандарта W3C для сохранения наглядности кода. Но в реальном приложении для сохранения кросс-браузерности нужно использовать префиксы браузеров (-webkit-
, -moz-
, -o-
), что вы можете увидеть в исходниках к уроку.
Шаг 2. определяем начальное положение
Сначала устанавливаем объект в верхнем положении. В трансформации CSS3 добавляем отрицательное значение для координаты по оси Y. Данное положение устанавливается от 0%
до 5%
временной шкалы анимации, то есть панель будет находится вверху очень недолго.
0% { transform:translateY(-100%); opacity: 0; } 5% { transform:translateY(-100%); opacity: 0; }
Шаг 3. Определяем первый отскок
Затем на интервале от 5%
до 15%
временной шкалы объект начинает движение в конечное положение. Устанавливаем для свойства translateY
значение 0%
.
Когда объект достигает конечного положения нижняя сторона должна деформироваться (имитируя последствия удара). В нашем случае уменьшим padding-bottom
от 10px
до 5px
.
15% { transform:translateY(0); padding-bottom: 5px; }
Объект отскакивает вверх после достижения поверхности. В данной точке объект подскакивает на максимальную высоту 50%
в момент 30%
временной шкалы.
30% { transform:translateY(-50%); }
Шаг 4. Определяем второй отскок
После достижения пика объект должен вернуться обратно в положение 0
, то есть "упасть". Объект немного деформирован после предыдущего удара, поэтому мы уменьшаем свойство padding-bottom
только до 6px
.
40% { transform:translateY(0%); padding-bottom: 6px; }
Затем происходит отскок.
Теперь точка подъема будет располагаться ниже, чем в первый раз - 30%
от текущего положения.
50% { transform:translateY(-30%); }
Шаг 5. Продолжаем отскакивать до полной остановки
События повторяются до конца анимации — от 70% до 100% временной шкалы анимации.
70% { transform:translateY(0%); padding-bottom: 7px; } 80% { transform:translateY(-15%); } 90% { transform:translateY(0%); padding-bottom: 8px; } 95% { transform:translateY(-7%); } 97% { transform:translateY(0%); padding-bottom: 9px; } 99% { transform:translateY(-3%); } 100% { transform:translateY(0); padding-bottom: 9px; opacity: 1; }
Готово!
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/IvtUjL1mQMQ/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Все мы сидим в сточной канаве, но некоторые при этом смотрят на звезды Уайльд Оскар - (1854-1900) - английский писатель |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.