Перейти к содержимому

Как сделать задержку анимации css

  • автор:

Свойство animation-delay

Свойство animation-delay устанавливает задержку перед запуском анимации.

Синтаксис

Значения

Значение Описание
s Задает время в секундах (например 3s ).
ms Задает время в миллисекундах (например 3ms ). Одна секунда — это 1000 миллисекунд.

Значение по умолчанию: 0s .

Пример

В данном примере перед началом анимации будет задержка в 3 секунды:

@keyframes move < from < margin-left: 0; >to < margin-left: 400px; >> #elem < animation-delay: 3s; animation-duration: 6s; animation-name: move; animation-iteration-count: infinite; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; >

Смотрите также

  • свойство animation-name ,
    которое задает имя анимации
  • свойство animation-duration ,
    которое задает продолжительность анимации
  • свойство animation-delay ,
    которое задает задержку перед выполнением анимации
  • свойство animation-timing-function ,
    которое задает скорость выполнения анимации
  • свойство animation-iteration-count ,
    которое задает количество итераций анимации
  • свойство animation-direction ,
    которое задает направление анимации
  • свойство animation-fill-mode ,
    которое задает состояние анимации
  • свойство animation-play-state ,
    которое позволяет поставить анимацию на паузу
  • свойство animation ,
    представляющее собой сокращение для анимаций
  • команду @keyframes ,
    задающую ключевые кадры анимации
  • плавные переходы transition , представляющие собой анимацию по наведению на элемент

Свойство transition-delay

CSS-анимация не обязательно должна начинаться мгновенно после ее инициализации. Вы можете управлять ее началом с помощью свойства transition-delay . Чтобы отложить совершение перехода на определенное время, укажите его в значении свойства:

transition-delay: 1s; /* отложить начало анимации на одну секунду */

Данное свойство мало используется при реализации простой интерактивности на сайте, однако оно может быть весьма полезным, если вам предстоит создавать более сложные эффекты. По аналогии с transition-duration можно записать время задержки для каждого свойства, указанного в transition-property (при этом также важно придерживаться порядка перечисления):

transition-property: color, background-color, letter-spacing; transition-duration: 1s, .5s, 2s; transition-delay: 0s, 0s, 2s; /* задержка анимации letter-spacing на 2 секунды */

Не забывайте о кроссбраузерности — абсолютно все свойства семейства transition требуют использования вендорных префиксов:

-webkit-transition-delay: 1s; -moz-transition-delay: 1s; -o-transition-delay: 1s; transition-delay: 1s;

Практическое применение

На практике свойство transition-delay весьма часто применяется при создании выпадающих меню, которые раскрываются при наведении курсора. В данном случае оно записывается не только для начального состояния, но и для конечного.

Возможно, вы замечали, что на некоторых сайтах выпадающие подменю исчезают слишком быстро, при этом сложно поймать нужную ссылку и кликнуть по ней. Предотвратить такое поведение как раз и помогает свойство transition-delay , установленное для обычного элемента и для элемента с псевдоклассом :hover . Значения будут отличаться: для обычного состояния свойство transition-delay должно иметь значение больше нуля, а для состояния наведенного курсора оно должно равняться 0. Пример:

.submenu < opacity: 0; transition-property: all; transition-duration: .5s; transition-delay: 1s; >.menu:hover .submenu

Данный код приведет к тому, что появление меню при наведении курсора будет происходить без задержки, а исчезновение задержится на одну секунду. Такой трюк однозначно сделает меню более удобным для использования.

Как правильно сделать задержку начала анимации в css?

Потому что, во-первых, нет такого свойства -webkit-animation-animation-delay , есть -webkit-animation-delay , а, во-вторых, параметром должны быть только секунды — у Вас же зачем-то ещё название анимации указано. Потому и не работает.

Ну и после свойств с вендорными префиксами необходимо указывать свойства без них, иначе могут быть глюки.

@keyframes animKrysa < 0% < transform: translateX(0) scale(0.4); >25% < transform: translateX(calc(50vw + 50px)) scale(0.1); >50% < transform: translateX(calc(50vw + 50px)) scale(0.05); >100% < transform: translateX(calc(50vw + 80px)) scale(0.001); >> .krysa
 

Отслеживать
ответ дан 17 дек 2020 в 7:50
humster_spb humster_spb
13.5k 4 4 золотых знака 24 24 серебряных знака 47 47 бронзовых знаков

humster_spb спасибо за быстрый ответ и указанные ошибки. Но получилось несколько не так как хотелось бы. Появление крысы на экране должно быть через 4 сек., после открытия страницы, только потом начинается ее движение. У Вас же крыса сразу появляется на экране и только потом через 4 сек начинает движение.

animation-delay

Свойство animation-delay устанавливает время ожидания перед воспроизведением анимации. Значение 0s или 0ms, которое установлено по умолчанию, запускает анимацию сразу же, как только она применяется к элементу. Отрицательное значение также включает анимацию без задержек, но приводит к изменению последовательности начала анимации.

Допустимо указывать несколько значений, перечисляя их через запятую. Каждое значение будет применяться к свойству, заданному в параметрах animation-name .

Синтаксис

Значения

HTML5 CSS3 IE 10+ Cr Op Sa Fx

    animation-delay    

Объектная модель

[window.]document.getElementById(» elementID «).style.animationDelay

Браузеры

Chrome, Safari, Android и iOS поддерживают нестандартное свойство -webkit-animation-delay .

Opera до версии 12.10 поддерживает нестандартное свойство -o-animation-delay .

Firefox до версии 16.0 поддерживает нестандартное свойство -moz-animaition-delay .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *