CSS Anitisheni
- Page ya Kwanza CSS Mafupi
- Pya Page CSS Tooltips
CSS Anitisheni
CSS 可实现 HTML 元素的动画效果,而不使用 JavaScript 或 Flash!
在本章中,您将学习如下属性:
@keyframes
animation-name
animation-duration
animation-delay
animation-iteration-count
animation-direction
animation-timing-function
animation-fill-mode
animation
对动画的浏览器支持
表格中的数字注明了完全支持该属性的首个浏览器版本。
Mwako | 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 |
什么是 CSS 动画?
动画使元素逐渐从一种样式变为另一种样式。
您可以随意更改任意数量的 CSS 属性。
如需使用 CSS 动画,您必须首先为动画指定一些关键帧。
关键帧包含元素在特定时间所拥有的样式。
@keyframes 规则
如果您在 @keyframes
规则中指定了 CSS 样式,动画将在特定时间逐渐从当前样式更改为新样式。
Kuwa hali ya uharibifu inafanyika, inafaa kuwa na uharibifu wa elementi.
Mfano hii itatuma "example" uharibifu kwa elementi ya <div>. Uharibifu unaweza kumaliza 4 sekunde, ikitumia hali ya rangi ya <div> ya kina ya "red" hadi "yellow":
Mfano
/* 动画代码 */ @keyframes example { from {background-color: red;} to {background-color: yellow;} } /* Tumia uharibifu wa hali ya hali hii kwa elementi hii */ div { width: 100px; height: 100px; background-color: red; animation-name: example; animation-duration: 4s; }
Uwaguzi:animation-duration
Hali ya uharibifu inaeleza kwa kumaliza uharibifu kwa wakati. Ikiwa haitakayotakiwa animation-duration
Hali ya uharibifu haikufanyika, kwa sababu thamani ya kuzingatia ni 0s (0 sekunde).
Kwenye mifano wa juu, kwa kutumia maneno ya kikuu "from" na "to" (inaadilisha 0% (kuanza) na 100% (kumaliza)), tumeweka hali ya uharibifu kwa uharibifu.
Wewe pia unaenda kutumia ufadhi wa namba za pondo. Kwa kutumia ufadhi wa pondo, unaweza kuongeza ujenzi wa uharibifu wa hali ya kina kwa ujenzi.
Mfano wa miongo hii watafutika kwa 25%, kwa 50% na 100% kwa uharibifu wa muda wa hali ya <div> ya mabaki ya rangi ya mgongo:
Mfano
/* 动画代码 */ @keyframes example { 0% {background-color: red;} 25% {background-color: yellow;} 50% {background-color: blue;} 100% {background-color: green;} } /* 应用动画的元素 */ div { width: 100px; height: 100px; background-color: red; animation-name: example; animation-duration: 4s; }
下面的例子将在动画完成 25%,完成 50% 以及动画完成 100% 时更改背景颜色和
Mfano
/* 动画代码 */ @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;} } /* 应用动画的元素 */ div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; }
延迟动画
animation-delay
属性规定动画开始的延迟时间。
下面的例子在开始动画前有 2 秒的延迟:
Mfano
div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-delay: 2s; }
负值也是允许的。如果使用负值,则动画将开始播放,如同已播放 N 秒。
在下面的例子中,动画将开始播放,就好像它已经播放了 2 秒钟一样:
Mfano
div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-delay: -2s; }
设置动画应运行多少次
animation-iteration-count
属性指定动画应运行的次数。
下面的例子在停止前把动画运行 3 次:
Mfano
div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-iteration-count: 3; }
下面的例子使用值 "infinite" 使动画永远持续下去:
Mfano
div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-iteration-count: infinite; }
反向或交替运行动画
animation-direction
属性指定是向前播放、向后播放还是交替播放动画。
animation-direction
属性可接受以下值:
normal
- 动画正常播放(向前)。默认值reverse
- 动画以反方向播放(向后)alternate
- 动画先向前播放,然后向后alternate-reverse
- 动画先向后播放,然后向前
下例将以相反的方向(向后)运行动画:
Mfano
div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-direction: reverse; }
下面的例子使用值 "alternate" 使动画先向前运行,然后向后运行:
Mfano
div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-iteration-count: 2; animation-direction: alternate; }
下面的例子使用值 "alternate-reverse" 使动画先向后运行,然后向前运行:
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; }
指定动画的速度曲线
animation-timing-function
属性规定动画的速度曲线。
animation-timing-function
属性可接受以下值:
ease
- 指定从慢速开始,然后加快,然后缓慢结束的动画(默认)linear
- 规定从开始到结束的速度相同的动画ease-in
- 规定慢速开始的动画ease-out
- 规定慢速结束的动画ease-in-out
- 指定开始和结束较慢的动画cubic-bezier(n,n,n,n)
- 运行您在三次贝塞尔函数中定义自己的值
下面这些例子展示了可以使用的一些不同速度曲线:
Mfano
#div1 {kina ya muda ya kina ya muda: kina ya muda ya kina ya muda;} #div2 {kina ya muda ya kina ya muda: kina ya muda ya kina ya muda;} #div3 {kina ya muda ya kina ya muda: kina ya muda ya kina ya muda;} #div4 {kina ya muda ya kina ya muda: kina ya muda ya kina ya muda;} #div5 {kina ya muda ya kina ya muda: kina ya muda ya kina ya muda;}
Kina inasababisha kina ya muda ya kina ya muda.
Kina ya CSS ya kina ya muda haliwezi kutumia kina ya muda kabla ya kina ya muda wa kina ya muda au baada ya kina ya muda wa kina ya muda.animation-fill-mode
kina kinapokea kina za hivi.
Kama kina haliwezi kusababisha kina wa muda (kutoka chanzo, kabla ya kina wa muda, au baada ya kina wa muda),animation-fill-mode
Kina inasababisha muundo wa kina ya muda ya kina ya muda.
Mfano wa kina ya kina ya muda ya kina ya muda kinapokea kina za hivi:
none
- Chaguo cha kawaida. Kina haliwezi kutumia muundo wa kina wa muda kabla ya kina wa muda au baada ya kina wa muda.forwards
- Kina kinasitishwa kwa muundo wa kina wa muda wa kina wa muda wa muda (kutegemea mazingira ya kina ya muda na muda wa kina ya muda).backwards
- Kina kinapata muundo wa kina wa muda wa kina wa muda wa kina wa muda (kutegemea mazingira ya kina ya muda).both
- Tukio la kina hilo linatumiwa kusababisha kina kufikia muundo wa kina wa muda kwa muda wa kina wa muda.
Mfano hii inaonyesha kwa sababu ya muda wa muda wa kina ya msingi ya <div> inasitishwa kwa muundo wa kina ya kwanza kwa muda wa kina ya kwanza ya kina ya muda.
Mfano
div { width: 100px; height: 100px; background: red; position: relative; animation-name: example; animation-duration: 3s; animation-fill-mode: forwards; }
Maelezo yafuatayo yanafanya kwa kinaanimisha kuanza kwa kumwambia <div> kuwa na muundo wa kinaimeshi wa muhimu wa kwanza wakati wa kinaanimisha kinaingia wakati wa kumfuata:
Mfano
div { width: 100px; height: 100px; background: red; position: relative; animation-name: example; animation-duration: 3s; animation-delay: 2s; animation-fill-mode: backwards; }
Maelezo yafuatayo yanafanya kwa kinaanimisha kuanza kwa kumwambia <div> kuwa na muundo wa kinaimeshi wa muhimu wa kwanza, na kumpenda muundo wa kinaimeshi wa kwanza kumaliza:
Mfano
div { width: 100px; height: 100px; background: red; position: relative; animation-name: example; animation-duration: 3s; animation-delay: 2s; animation-fill-mode: both; }
Mwako wa kinaanimisha wa kinaanimisha
Maelezo yafuatayo yanatoa watano wa matumizi ya kinaanimisha:
Mfano
div { animation-name: example; animation-duration: 5s; animation-timing-function: linear; animation-delay: 2s; animation-iteration-count: infinite; animation-direction: alternate; }
Inafanyia uendelevu wa kinaanimisha wa kinaanimisha: animation
Mwako wa kinaanimisha kinaweza kufanya jinsi iliyofikia kinaanimisha kama iliyotumika kwenye maelezo yanaofikia kinaanimisha:
Mfano
div { animation: example 5s linear 2s infinite alternate; }
Matumizi ya CSS ya kinaanimisha
Tafaniki inayopaswa kwenye @keyframes na kila matumizi ya CSS ya kinaanimisha inaitwa:
Mwako | Inasimulia |
---|---|
@keyframes | Inauza mtindo wa kinaanimisha. |
animation | Inauza uendelevu wa sababu ya kinaanimisha wa kila sababu. |
animation-delay | Inauza wakati anayoweza kuanza kinaanimisha. |
animation-direction | Inauza kama anapendea kinaanimisha kuingia kwenye kinaanimisha, kumaliza kinaanimisha au kuingia na kumaliza kinaanimisha kila mara. |
animation-duration | Inauza wakati anayoweza kufikia muda wa kipindi cha kinaanimisha. |
animation-fill-mode | Inauza mtindo wa maelezo wa kitu kinachotumika kwa sababu ya kinaanimisha (kwenye kuanza, kwenye kumaliza, au zote mbili). |
animation-iteration-count | Inauza mara anapendea kipendea kina animesheni. |
animation-name | Inauza jina la @keyframes la kipendea kina animesheni. |
animation-play-state | Kumekuwa na Vifaa vya Kufikia Anitisheni Kupitia Kusababisha au Kusikitisha |
animation-timing-function | Kumekuwa na Vifaa vya Kufikia Kina ya Anitisheni |
- Page ya Kwanza CSS Mafupi
- Pya Page CSS Tooltips