CSS Tengeneza

CSS Tengeneza

CSS 可实现 HTML 元素的动画效果,而不使用 JavaScript 或 Flash!

CSS

在本章中,您将学习如下属性:

  • @keyframes
  • animation-name
  • animation-duration
  • animation-delay
  • animation-iteration-count
  • animation-direction
  • animation-timing-function
  • animation-fill-mode
  • animation

对动画的浏览器支持

表格中的数字注明了完全支持该属性的首个浏览器版本。

Inaonyesha Chrome IE Firefox Safari Opera
@keyframes 43.0 10.0 16.0 9.0 30.0
animation-name 43.0 10.0 16.0 9.0 30.0
animation-duration 43.0 10.0 16.0 9.0 30.0
animation-delay 43.0 10.0 16.0 9.0 30.0
animation-iteration-count 43.0 10.0 16.0 9.0 30.0
animation-direction 43.0 10.0 16.0 9.0 30.0
animation-timing-function 43.0 10.0 16.0 9.0 30.0
animation-fill-mode 43.0 10.0 16.0 9.0 30.0
animation 43.0 10.0 16.0 9.0 30.0

Nini kina ya CSS uharibifu?

Uharibifu unaingia kwamba inaingia kina ya kina kutoka kina ya kina hadi kina ya kina mpya.

Wewe unaweza kubadilisha kina ya kina kwa kina kwa uharibifu.

Kwa kutumia kina ya CSS uharibifu, wewe wakitegemea inaingia kwamba inaangazia kina ya kina kwa uharibifu.

Kina ya kina inaingia kwamba inaangazia mabara ya kina inayotumiwa kwa mabara kwenye wakati tu.

@keyframes kina

Ikiwa wewe unaendelea @keyframes Inaingia kwamba inasambaa kina ya CSS inaangazia uharibifu wa kina kwa kina kwenye wakati tu.

Kuwa uharibifu hufikia kina, wewe wakitegemea inasambaa uharibifu kwa kina. Inaingia kwamba inasambaa kina ya CSS inaangazia uharibifu wa kina kwa kina kwenye wakati tu.

Mifano inayotumiwa hapa itakuwa inasambaa "example" uharibifu kwa mabara ya <div>. Uharibifu huitumiwa kwa wakati wa 4 sekunde, kwa kusambaa mabara ya kichwa kwa mabara ya kijani:

Mfano

/* Mafano ya uharibifu */
@keyframes example {
  from {mabakiwa kwa mabaki: kulengia mabara ya kichwa;}
  to {mabakiwa kwa mabaki: kulengia mabara ya kijani;}
}
/* Inaingia uharibifu wa mabara hii kwa kina; */
div {
  width: 100px;
  height: 100px;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
}

Mfano wa kufikia kwa urahisi

Hataje.animation-duration Inaingia kwamba inaangazia wakati anayotakiwa kufikia uharibifu. Ikiwa inahitajika. animation-duration Inaingia kwamba uharibifu haukitokea, kwa sababu thamani ya kwanza ni 0s (0 sekunde).

Kwenye mifano inayotumiwa hapa, kwa kutumia maneno ya kina "from" na "to" (inaadhimisha 0% (kuanza) na 100% (kufikia)), tumekuwa na uharibifu wa kina kuanza kubadilika.

Wewe wakitegemea namba za kina. Kwa kutumia namba za kina, wewe unaweza kuongeza uharibifu wa uharibifu wa uraifu kwa sababu ya maana ya kina.

Mifano inayotumiwa hapa itakuwa inafanywa kama uharibifu wa 25%, kufikia 50% na uharibifu wa 100% wakati uharibifu hufikia 100% mabara ya <div> itakawezekana kulengia mabara ya kichwa:

Mfano

/* Mafano ya uharibifu */
@keyframes example {
  0%   {mabakiwa kwa mabaki: kulengia mabara ya kichwa;}
  25%  {mabakiwa kwa mabaki: kulengia mabara ya kijani;}
  50%  {background-color: blue;}
  50%  {background-color: blue;}
}
/* Elemento zilizotumiwa kwa uharibifu */
div {
  width: 100px;
  height: 100px;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
}

Mfano wa kufikia kwa urahisi

100% {background-color: green;}

Mfano

/* Mafano ya uharibifu */
@keyframes example {
  0%   {background-color:red; left:0px; top:0px;}
  25%  {background-color:yellow; left:200px; top:0px;}
  50%  {background-color:blue; left:200px; top:200px;}
  75%  {background-color:green; left:0px; top:200px;}
  100% {background-color:red; left:0px; top:0px;}
}
/* Elemento zilizotumiwa kwa uharibifu */
div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
}

Mfano wa kufikia kwa urahisi

Kusaidia uharibifu kwa wakati wa kuanza

animation-delay Mafano unaonyesha kwamba uharibifu unaendelea kwa wakati wa kuanza.

Mfano hii unaonyesha kwamba uharibifu unaendelea kwa 2 sekunde kabla ya kuwaonyesha:

Mfano

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-delay: 2s;
}

Mfano wa kufikia kwa urahisi

Mivuno yanaoweza kutumiwa. Ikiwa tunaongea mivuno, uharibifu uianza kuwaonyesha kama haujafikia N sekunde.

Mfano hii unaonyesha kwamba uharibifu uianza kuwaonyesha kama haujafikia 2 sekunde:

Mfano

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-delay: -2s;
}

Mfano wa kufikia kwa urahisi

Kufanya kwamba uharibifu unaendelea kwa mara za uharibifu

animation-iteration-count Mafano unaonyesha kwamba uharibifu unaendelea kwa mara za uharibifu.

Mfano hii unaonyesha kwamba uharibifu unaendelea kwa 3 mara kabla ya kumaliza:

Mfano

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-iteration-count: 3;
}

Mfano wa kufikia kwa urahisi

Mfano hii unaonyesha kwa thamani "infinite" kufanya kwamba uharibifu unaendelea kwa kina kina:

Mfano

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-iteration-count: infinite;
}

Mfano wa kufikia kwa urahisi

Kusaidia uharibifu kwa mbali mbali na kusaidia kwa sababu ya huzuni

animation-direction Mafano unaonyesha kwamba uharibifu unaendelea kuwaonyesha kwa mbali mbali, kuja kuelewa au kusaidia kwa sababu ya huzuni.

animation-direction Mwamaduni huu inadaiwa kwa ufupi:

  • normal - Uharibifu unaonyesha kwa njia ya kwa mbali mbali (kuja). Kivinio cha chaguo
  • reverse - Uharibifu unaonyesha kwa mbali mbali (kuja)
  • alternate - Uharibifu unaendelea kuwaonyesha kwa mbali mbali na kuja
  • alternate-reverse - Uharibifu unaendelea kuwaonyesha kwa mbali mbali na kuja

Mfano hii unaonyesha kwamba uharibifu unaendelea kuelewa kwa mbali mbali (kuja):

Mfano

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-direction: reverse;
}

Mfano wa kufikia kwa urahisi

Mfano hii unaonyesha kwa thamani "alternate" kufanya kwamba uharibifu uendelee kuja na kuja kuelewa kwa sababu ya huzuni:

Mfano

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-iteration-count: 2;
  animation-direction: alternate;
}

Mfano wa kufikia kwa urahisi

Mfano hii unaonyesha kwa thamani "alternate-reverse" kufanya kwamba uharibifu uendelee kuja na kuja kuelewa kwa sababu ya huzuni:

Mfano

div {
  width: 100px;
  height: 100px;
  position: relative;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
  animation-iteration-count: 2;
  animation-direction: alternate-reverse;
}

Mfano wa kufikia kwa urahisi

Kuchagua mawimbi wa uharibifu wa kawaida

animation-timing-function Mwamaduni huu inadaiwa na uharibifu wa kawaida.

animation-timing-function Mwamaduni huu inadaiwa kwa ufupi:

  • ease - Kuchagua uharibifu ambao inasababisha kuzingatia na kumaliza kwa uharibifu wa kwanza (kawaida).
  • linear - Kuchagua uharibifu ambao inasababisha uharibifu wa kuzingatia na kumaliza kwa uharibifu wa kwanza.
  • ease-in - Kuchagua uharibifu wa kuzingatia kwa uharibifu wa kwanza.
  • ease-out - Kuchagua uharibifu wa kumaliza kwa uharibifu wa kwanza.
  • ease-in-out - Kuchagua uharibifu wa kuzingatia na kumaliza kwa uharibifu wa kwanza na kumaliza kwa uharibifu wa kwanza.
  • cubic-bezier(n,n,n,n) - Runia uharibifu wako kwa kuzingatia kwa mfano wa kutoka kwa mfano wa kufikia.

Mfano hii inaonyesha kwa uharibifu wa kawaida zaidi zaidi za kufikia:

Mfano

#div1 {animation-timing-function: linear;}
#div2 {animation-timing-function: ease;}
#div3 {animation-timing-function: ease-in;}
#div4 {animation-timing-function: ease-out;}
#div5 {animation-timing-function: ease-in-out;}

Mfano wa kufikia kwa urahisi

Kuchagua mawimbi wa uharibifu wa hali

Uharibifu wa CSS hauweza kumwambika jicho kabla ya kina-chuki wa kwanza au baada ya kina-chuki wa mwisho.animation-fill-mode Mwamaduni huu inaweza kumaliza hii.

Hata imetoka katika uharibifu (kabla ya kuanza, baada ya kumaliza, au kwa mbali mbali),animation-fill-mode Mwamaduni huu inadaiwa na jicho ya uharibifu.

Mwamaduni wa uharibifu wa hali unaonekana kwa ufupi:

  • none - Chaguo cha kawaida. Uharibifu haupeana hali kwa jicho kabla ya uharibifu au baada ya uharibifu.
  • forwards - Jicho kinasafiri katika uharibifu wa kina-chuki wa mwisho (kutegemea mawimbi wa uharibifu na mawimbi wa uharibifu wa kuzingatia).
  • backwards - Jicho kinasafiri katika uharibifu wa kina-chuki wa kwanza (kutegemea mawimbi wa uharibifu) na kusafiri katika wakati wa kusasa wa uharibifu.
  • both - Uharibifu unatokana na mabaki ya mawimbi wa kuzingatia na kuzingatia kubadilika katika uharibifu wa sababu.

Mfano hii inaonyesha <div> kuwa inasimama katika mabaki ya kina-chuki ya mwisho ya uharibifu wa hali.

Mfano

div {
  width: 100px;
  height: 100px;
  background: red;
  position: relative;
  animation-name: example;
  animation-duration: 3s;
  animation-fill-mode: forwards;
}

Mfano wa kufikia kwa urahisi

Maelezo yafuatayo inaonyesha uharibifu wa sababu ya kina wa <div> kwenye wakati wa kuanzia (kwenye muda wa kusikia) wa uharibifu:

Mfano

div {
  width: 100px;
  height: 100px;
  background: red;
  position: relative;
  animation-name: example;
  animation-duration: 3s;
  animation-delay: 2s;
  animation-fill-mode: backwards;
}

Mfano wa kufikia kwa urahisi

Maelezo yafuatayo inaonyesha uharibifu wa sababu ya kina wa <div> kwenye wakati wa kuanzia kwenye uharibifu, na kuwa na uharibifu wa uharibifu wa kuzama wa uharibifu wa kuzama wa uharibifu wa kuzama:

Mfano

div {
  width: 100px;
  height: 100px;
  background: red;
  position: relative;
  animation-name: example;
  animation-duration: 3s;
  animation-delay: 2s;
  animation-fill-mode: both;
}

Mfano wa kufikia kwa urahisi

Inaonyesha sababu ya uharibifu wa kina

Maelezo yafuatayo inaonyesha kila sababu ya uharibifu ya kina:

Mfano

div {
  animation-name: example;
  animation-duration: 5s;
  animation-timing-function: linear;
  animation-delay: 2s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

Mfano wa kufikia kwa urahisi

Inaonyesha uharibifu wa kina: animation Inaonyesha sababu ya uharibifu inayofanana na maelezo yaliyotumika:

Mfano

div {
  animation: example 5s linear 2s infinite alternate;
}

Mfano wa kufikia kwa urahisi

Sababu za uharibifu ya CSS

Tafanua hii inatokana @keyframes na kila sababu ya uharibifu ya CSS:

Inaonyesha Inaonyesha
@keyframes Inaonyesha modi ya uharibifu.
animation Inaonyesha uharibifu wa sababu ya kina.
animation-delay Inaonyesha uharibifu wa muda wa kuanzia.
animation-direction Inaonyesha ukifuatilia wa uharibifu, ukifika kwenye kuzama, au kwa mbio.
animation-duration Inaonyesha wakati wa uharibifu wa kiwango chake cha kuzama.
animation-fill-mode Inaonyesha uharibifu wa uzozi kama ingia, kufikia mwisho, au kwa mbio.
animation-iteration-count Inaonyesha mara anavyotumika yaani yaani yanaonyesha.
animation-name Inaonyesha @keyframes yaani yaani yanaonyesha.
animation-play-state Kurudisha kina cha uharibifu wa mzunguko.
animation-timing-function Kurudisha kina cha uharibifu wa mzunguko.