CSS అనిమేషన్
- ముంది పేజీ CSS ట్రాన్సిషన్
- తదుపరి పేజీ CSS టూల్టిప్
CSS అనిమేషన్
CSS 可实现 HTML 元素的动画效果,而不使用 JavaScript 或 Flash!
在本章中,您将学习如下属性:
@keyframes
animation-name
animation-duration
animation-delay
animation-iteration-count
animation-direction
animation-timing-function
animation-fill-mode
animation
对动画的浏览器支持
表格中的数字注明了完全支持该属性的首个浏览器版本。
అట్రిబ్యూట్ | 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 样式,动画将在特定时间逐渐从当前样式更改为新样式。
要使动画生效,必须将动画绑定到某个元素。
下面的例子将 "example" 动画绑定到
ప్రాయోగిక
/* అనిమేషన్ కోడ్ */ @keyframes example { from {background-color: red;} to {background-color: yellow;} } /* 向此元素应用动画效果 */ div { width: 100px; height: 100px; background-color: red; animation-name: example; animation-duration: 4s; }
注意:animation-duration
属性定义需要多长时间才能完成动画。如果未指定 animation-duration
属性,则动画不会发生,因为默认值是 0s(0秒)。
పైని ఉదాహరణలో, "from" మరియు "to" అనే పదాలను ఉపయోగించడం ద్వారా (ఇవి 0% ప్రారంభం మరియు 100% పూర్తి అని పేర్కొన్నారు), మేము శైలులు ఎప్పుడు మారాలో ఏర్పాటు చేశాము.
మీరు పరిమాణాన్ని కూడా ఉపయోగించవచ్చు. పరిమాణాన్ని ఉపయోగించడం ద్వారా, మీరు అవసరమైన అనేక శైలి మార్పులను జోడించవచ్చు.
ఈ ఉదాహరణలో, 25%, 50% మరియు 100% పూర్తి అయినప్పుడు డివ్ ఎలమెంట్ బ్యాక్గ్రౌండ్ కలర్ మారుతుంది:
ప్రాయోగిక
/* అనిమేషన్ కోడ్ */ @keyframes example { 0% {background-color: red;} 25% {background-color: yellow;} 50% {background-color: blue;} 50% {background-color: blue;} } /* అనిమేషన్ అనువర్తించే మెట్రిక్స్ */ div { width: 100px; height: 100px; background-color: red; animation-name: example; animation-duration: 4s; }
100% {background-color: green;}
ప్రాయోగిక
/* అనిమేషన్ కోడ్ */ @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 సెకన్ల డిలే ఉంటుంది:
ప్రాయోగిక
div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-delay: 2s; }
నిష్పక్షపాతంగా విలువలు కూడా అనుమతించబడతాయి. నిష్పక్షపాతంగా విలువలను ఉపయోగించినట్లయితే, అనిమేషన్ ఇప్పటికే N సెకన్లు ప్లే చేయబడింది వంటిగా ప్లే చేయబడుతుంది.
ఈ ఉదాహరణలో అనిమేషన్ మొదట ప్లే చేయబడుతుంది, మరియు ఇది ఇప్పటికే 2 సెకన్లు ప్లే చేయబడింది వంటిగా భావించబడుతుంది:
ప్రాయోగిక
div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-delay: -2s; }
అనిమేషన్ నిర్వహించాలి ఉన్న సంఖ్యను నిర్ణయించడం
animation-iteration-count
అనిమేషన్ నిర్వహించాలి ఉన్న సంఖ్యను ఈ అనునంది స్పష్టం చేస్తుంది.
ఈ ఉదాహరణలో అనిమేషన్ ఆగినప్పటికీ మొత్తం 3 సార్లు అడుగులు పెట్టబడుతుంది:
ప్రాయోగిక
div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-iteration-count: 3; }
ఎంపిక చేసిన "infinite" విలువను ఉపయోగించి అనిమేషన్ ఎలాంటి పరిమితి లేకుండా కొనసాగుతుంది:
ప్రాయోగిక
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
- అనిమేషన్ మొదట వెనుకకు అడుగులు పెట్టి, తరువాత ముందుకు అడుగులు పెట్టబడుతుంది
ఈ ఉదాహరణలో అనిమేషన్ ప్రతికూల దిశలో (వెనుకకు) అడుగులు పెట్టబడుతుంది:
ప్రాయోగిక
div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s; animation-direction: reverse; }
ఎంపిక చేసిన "alternate" విలువను ఉపయోగించి అనిమేషన్ మొదట ముందుకు అడుగులు పెట్టి, తరువాత వెనుకకు అడుగులు పెట్టడం ఉంటుంది:
ప్రాయోగిక
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" విలువను ఉపయోగించి అనిమేషన్ మొదట వెనుకకు అడుగులు పెట్టి, తరువాత ముందుకు అడుగులు పెట్టడం ఉంటుంది:
ప్రాయోగిక
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)
- 运行您在三次贝塞尔函数中定义自己的值
下面这些例子展示了可以使用的一些不同速度曲线:
ప్రాయోగిక
#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;}
指定动画的填充模式
CSS 动画不会在第一个关键帧播放之前或在最后一个关键帧播放之后影响元素。animation-fill-mode
属性能够覆盖这种行为。
在不播放动画时(在开始之前,结束之后,或两者都结束时),animation-fill-mode
అట్రిబ్యూట్ పరిశీలన లో లక్ష్య ఎలిమెంట్ స్టైల్ ని నిర్ణయిస్తుంది.
animation-fill-mode అట్రిబ్యూట్ కు క్రింది విలువలను అంగీకరిస్తుంది:
none
- డిఫాల్ట్ విలువ. కథానాకం ప్రారంభం ముందు లేదా ప్రక్రియ ముగిసిన తర్వాత ఎలిమెంట్ పై ఏ స్టైల్ విలువనూ ఆపాదించబడదు.forwards
- ఎలిమెంట్ చివరి కీ ఫ్రేమ్ స్టైల్ విలువను కాపాడుతుంది (animation-direction మరియు animation-iteration-count ఆధారితం).backwards
- ఎలిమెంట్ మొదటి కీ ఫ్రేమ్ స్టైల్ విలువను పొందుతుంది (animation-direction ఆధారితం) మరియు కథానాకం పాటుపడుతున్న కాలంలో ఆ విలువను కాపాడుతుంది.both
- కథానాకం ముందుకు మరియు తిరిగి నియమాలను అనుసరిస్తుంది మరియు రెండు దిశలలో కథానాకం స్టైల్ విలువలను విస్తరిస్తుంది.
ఈ ఉదాహరణలు కథానాకంలో ముగించిన కీ ఫ్రేమ్ స్టైల్ విలువను కాపాడి ఉంచేటట్టు <div> ఎలిమెంట్ ని కథానాకం ముగించిన తర్వాత స్టైల్ విలువలను ఉపయోగిస్తాయి:
ప్రాయోగిక
div { width: 100px; height: 100px; background: red; position: relative; animation-name: example; animation-duration: 3s; animation-fill-mode: forwards; }
ఈ ఉదాహరణలో అనిమేషన్ డిలే కాలంలో ముందుగా <div> అట్రిబ్యూట్ కు మొదటి కీ ఫ్రేమ్ స్టైల్స్ ను అనుసరించుతుంది:
ప్రాయోగిక
div { width: 100px; height: 100px; background: red; position: relative; animation-name: example; animation-duration: 3s; animation-delay: 2s; animation-fill-mode: backwards; }
ఈ ఉదాహరణలో అనిమేషన్ ప్రారంభం ముందు <div> అట్రిబ్యూట్ కు మొదటి కీ ఫ్రేమ్ స్టైల్స్ ను అనుసరించు మరియు అనిమేషన్ ముగింపు తర్వాత చివరి కీ ఫ్రేమ్ స్టైల్స్ ను ఉంచుతుంది:
ప్రాయోగిక
div { width: 100px; height: 100px; background: red; position: relative; animation-name: example; animation-duration: 3s; animation-delay: 2s; animation-fill-mode: both; }
అనిమేషన్ సరళ అట్రిబ్యూట్స్
ఈ ఉదాహరణలో ఆరు రకాల అనిమేషన్ అట్రిబ్యూట్స్ ఉన్నాయి:
ప్రాయోగిక
div { animation-name: example; animation-duration: 5s; animation-timing-function: linear; animation-delay: 2s; animation-iteration-count: infinite; animation-direction: alternate; }
సరళ రూపంలో ఉపయోగించు animation
అట్రిబ్యూట్స్ కూడా పై ఉదాహరణలో అనిమేషన్ ప్రభావాన్ని అనుసరించవచ్చు:
ప్రాయోగిక
div { animation: example 5s linear 2s infinite alternate; }
CSS అనిమేషన్ అట్రిబ్యూట్స్
ఈ పట్టిక అనిమేషన్ అట్రిబ్యూట్స్ మరియు అన్ని @keyframes రూల్స్ ను జాబితాభూకంచింది:
అట్రిబ్యూట్ | వివరణ |
---|---|
@keyframes | అనిమేషన్ మోడ్ నియమించు. |
animation | అన్ని అనిమేషన్ అట్రిబ్యూట్స్ కు సరళ అట్రిబ్యూట్ నియమించు. |
animation-delay | అనిమేషన్ డిలే నియమించు. అనిమేషన్ ప్రారంభమవుతుంది ముందు జరిగే వ్యవధి. |
animation-direction | అనిమేషన్ డిరెక్షన్ నియమించు. అనిమేషన్ ముందుకు ప్లే, వెనుకకు ప్లే లేదా పరివర్తనాత్మకంగా ప్లే అవుతుంది. |
animation-duration | అనిమేషన్ డ్యూరేషన్ నియమించు. అనిమేషన్ ఒక చక్రాన్ని పూర్తి చేయడానికి అవసరమైన సమయం. |
animation-fill-mode | అనిమేషన్ ఫిల్ మోడ్ నియమించు. అనిమేషన్ ప్లే కాంట్ కాదు ఉన్నప్పుడు స్టైల్స్ నియమించు (ప్రారంభం ముందు, ముగింపు ముందు, లేదా రెండింటి కూడా). |
animation-iteration-count | అనిమేషన్ ప్లే కాంట్ నియమించు. |
animation-name | నియమించు @keyframes అనిమేషన్ పేరు. |
animation-play-state | 规定动画是运行还是暂停。 |
animation-timing-function | అనిమేషన్ వేగం కర్రను నిర్ధారించుట |
- ముంది పేజీ CSS ట్రాన్సిషన్
- తదుపరి పేజీ CSS టూల్టిప్