277 of 313 menu

Свойство animation-fill-mode

Свойството animation-fill-mode задава в какво положение да спре анимацията след приключване. По подразбиране анимацията се връща в първоначалната стойност и това може да изглежда не много красиво.

Синтаксис

селектор { animation-fill-mode: backwards | forwards | both | none; }

Стойности

Стойност Описание
none Ако е зададено забавяне на анимацията - то през времето на забавянето елементът ще остава на място, а след това със скок ще премине към 0% кадър. След приключване на анимацията елементът няма да остане в състоянието, в което е спрял, а ще прескочи в началното състояние.
backwards Кара елемента да се придвижи след зареждане на страницата към 0% кадър, дори ако е зададено забавяне animation-delay, и да остане там, докато не започне анимацията. След приключване на анимацията елементът няма да остане в състоянието, в което е спрял, а ще прескочи в началното състояние.
forwards Указва на браузъра, че след приключване на анимацията елементът ще остане в състоянието, в което е спрял.
both Включва в себе си backwards и forwards - след зареждане на страницата елементът ще се установи към 0% кадър, а след приключване на анимацията елементът ще остане там, където е спрял.

Стойност по подразбиране: none.

Пример . Стойност none

В този пример margin-left е зададен в стойност 300px за елемента, а за първия кадър на анимацията - в 0px. Тъй като няма забавяне animation-delay, то елементът след зареждане на страницата ще се постави в 0px, а не в 300px. Освен това, анимацията след приключване ще прескача в началната стойност:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: none; animation-delay: 0s; animation-duration: 3s; animation-name: move; animation-iteration-count: infinite; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Пример . Стойност none

В този пример margin-left е зададен в стойност 300px за елемента, а за първия кадър на анимацията - в 0px. Също за елемента е зададено забавяне animation-delay в 3 секунди, затова елементът след зареждане на страницата ще се постави в 300px, а не в 0px, и ще стои там 3 секунди след началото на анимацията, а след това със скок ще премине към 0px - и анимацията ще започне оттам. Освен това, анимацията след приключване ще прескача в началната стойност:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: none; animation-delay: 0s; animation-duration: 3s; animation-name: move; animation-iteration-count: infinite; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Пример . Стойност backwards

В този пример margin-left е зададен в стойност 300px за елемента, а за първия кадър на анимацията - в 0px. Също за елемента е зададен animation-fill-mode в стойност backwards, затова елементът след зареждане на страницата ще се постави в 0px, а не в 300px, както беше за animation-fill-mode в стойност none. Освен това, анимацията след приключване ще прескача в началната стойност:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: backwards; animation-delay: 0s; animation-duration: 3s; animation-name: move; animation-iteration-count: infinite; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Пример . Стойност none и брой повторения равен на 1

В този пример margin-left е зададен в стойност 300px за елемента, а за първия кадър на анимацията - в 0px. Също за елемента е зададено забавяне animation-delay в 3 секунди, затова елементът след зареждане на страницата ще се постави в 300px, а не в 0px, и ще стои там 3 секунди след началото на анимацията, а след това със скок ще премине към 0px - и анимацията ще започне оттам. Тъй като animation-fill-mode е зададен в стойност none, то след възпроизвеждане на анимацията елементът ще се върне в началната стойност:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: none; animation-delay: 3s; animation-duration: 3s; animation-name: move; animation-iteration-count: 1; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Пример . Стойност forwards и брой повторения равен на 1

В този пример animation-fill-mode е зададен в стойност forwards, а броят на повторенията на анимацията - в 1. След възпроизвеждане на анимацията елементът ще остане в това положение, където е приключила анимацията, а няма да прескочи в началната точка.

Освен това, margin-left е зададен в стойност 300px за елемента, а за първия кадър на анимацията - в 0px. Също за елемента е зададено забавяне animation-delay в 3 секунди, затова елементът след зареждане на страницата ще се постави в 300px, а не в 0px, и ще стои там 3 секунди след началото на анимацията, а след това със скок ще премине към 0px - и анимацията ще започне оттам:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: forwards; animation-delay: 3s; animation-duration: 3s; animation-name: move; animation-iteration-count: 1; animation-timing-function: linear; border: 1px solid black; width: 50px; height: 50px; }

:

Пример . Стойност both и брой повторения равен на 1

В този пример animation-fill-mode е зададен в стойност both, а броят на повторенията на анимацията - в 1. След зареждане на страницата елементът ще стои в първия кадър на анимацията (в 0px, а не в 300px), а след възпроизвеждане на анимацията елементът ще остане в това положение, където е приключила анимацията, а няма да прескочи в началната точка:

<div id="elem"></div> @keyframes move { from { margin-left: 0; } to { margin-left: 400px; } } #elem { margin-left: 300px; animation-fill-mode: both; animation-delay: 3s; animation-duration: 3s; animation-name: move; animation-iteration-count: 1; 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-play-state,
    което позволява спиране на анимацията на пауза
  • свойство animation,
    представляващо съкращение за анимации
  • команда @keyframes,
    задаваща ключови кадри на анимацията
  • плавни преходи transition, представляващи анимация при посочване на елемент
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне