Vlastnost animation-direction

Vlastnost animation-direction nastavuje směr animace. Ve výchozím nastavení se animace opakuje pouze 1 krát a poté se vrátí do výchozího stavu, poté, pokud je nastaveno zpoždění animation-delay, počká stanovený čas a poté se cyklus začne znovu.

Tato vlastnost umožňuje toto chování změnit, například tak, aby animace po skončení zůstala tam, kde skončila, a nepřeskočila zpět do výchozí polohy.

Lze také nastavit chování: animace dojde do krajního bodu a vrátí se zpět (jako u transition). Viz popis níže.

Syntaxe

cssselektor {
  animation-direction: normal | reverse | alternate | alternate-reverse;
}

Hodnoty

Hodnota Popis
reverse Animace bude přehrávána v opačném směru.
alternate Animace bude přehrávána nejprve v přímém, a poté v opačném směru (jako transition).
alternate-reverse Animace bude přehrávána z konečné polohy do počáteční a zpět. V podstatě jde o hodnoty alternate a reverse v jednom.
normal Animace bude přehrávána od začátku do konce, a po skončení skokem přeskakuje do počáteční polohy.

Výchozí hodnota: normal.

Příklad

Nyní se bude prvek pohybovat jedním směrem, a poté se vracet zpět, protože je nastavena hodnota alternate. Přitom animation-duration má hodnotu 3 sekundy a to znamená, že přesuny "tam" a "zpět" budou trvat 3 sekundy:

html<div id="elem"></div>
css@keyframes move {
  from {
    margin-left: 0;
  }
  to {
    margin-left: 400px;
  }
}

#elem {
  animation-direction: alternate;
  animation-duration: 3s;
  animation-name: move;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  border: 1px solid black;
  width: 50px;
  height: 50px;
}

Результат:

Příklad

Nyní se bude prvek pohybovat v opačném směru (měl by zleva doprava, ale bude zprava doleva):

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

Результат:

Příklad

Nyní se bude prvek pohybovat tam a zpět, ale v opačném směru (měl by začínat vlevo, ale bude začínat vpravo):

html<div id="elem"></div>
css@keyframes move {
  from {
    margin-left: 0;
  }
  to {
    margin-left: 400px;
  }
}

#elem {
  animation-direction: alternate-reverse;
  animation-duration: 3s;
  animation-name: move;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
  border: 1px solid black;
  width: 50px;
  height: 50px;
}

Результат:

Viz také