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
پشتیبانی مرورگر از انیمیشن
اعداد در جدول نشاندهنده نسخه اولین مرورگر هستند که از این ویژگی پشتیبانی میکند.
属性 | کروم | IE | فایرفاکس | سافاری | اپرا |
---|---|---|---|---|---|
@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
در قوانین تعریف شده استایل، انیمیشن به تدریج از استایل فعلی به استایل جدید در زمان مشخصی تغییر میکند.
برای اینکه انیمیشن فعال شود، باید آن را به یک عنصر پیوند دهید.
مثال زیر "example" انیمیشن را به عنصر <div> پیوند میزند. انیمیشن 4 ثانیه طول میکشد و رنگ پسزمینه عنصر <div> را از "red" به "yellow" تغییر میدهد:
实例
/* آنی کا کوڈ */ @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٪ کامل کردن انیمیشن تغییر رنگ پسزمینه عناصر <div> را تغییر میدهد:
实例
/* آنی کا کوڈ */ @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% پر پس منظر رنگ اور <div> عنصر کی تلاش کو تبدیل کیا جائے گا:
实例
/* آنی کا کوڈ */ @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 سیکنڈ کی تاخیر کے بعد شروع کیا جائے گا، جیسے وہ 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 规则和所有 CSS 动画属性:
属性 | 描述 |
---|---|
@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 توضیحات ابزار