animation-fill-mode հատկությունը

animation-fill-mode հատկությունը սահմանում է, թե ինչ դիրքում պետք է կանգնի անիմացիան ավարտից հետո: Լռելյայն անիմացիան վերադառնում է նախնական արժեքին, և դա կարող է անգեղեցիկ երևալ:

Շարահյուսություն

cssընտրող {
  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: Բացի դրանից, անիմացիան ավարտից հետո կցատկի նախնական արժեքին:

html<div id="elem"></div>
css@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 - և անիմացիան կսկսվի այնտեղից: Բացի դրանից, անիմացիան ավարտից հետո կցատկի նախնական արժեքին:

html<div id="elem"></div>
css@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 արժեքի դեպքում: Բացի դրանից, անիմացիան ավարտից հետո կցատկի նախնական արժեքին:

html<div id="elem"></div>
css@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 արժեքով, ապա անիմացիայի ավարտից հետո տարրը կվերադառնա նախնական արժեքին:

html<div id="elem"></div>
css@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 - և անիմացիան կսկսվի այնտեղից:

html<div id="elem"></div>
css@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), իսկ անիմացիայի ավարտից հետո տարրը կմնա այն դիրքում, որտեղ ավարտվեց անիմացիան, և չի ցատկի սկզբնակետ:

html<div id="elem"></div>
css@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 սահուն անցումները, որոնք ներկայացնում են անիմացիա տարրի վրա դրվագման դեպքում