مفهوم animation-timeline در CSS

css animation timeline tutorial
20 آبان 1403

زمانی که به انیمیشن‌های وب فکر می‌کنیم، CSS به عنوان یکی از بهترین و کارآمدترین روش‌ها برای ایجاد انیمیشن‌های زیبا و روان به ذهن می‌رسد. اما یکی از ویژگی‌هایی که شاید کمتر به آن پرداخته شده باشد، ویژگی animation-timeline است که می‌تواند به ما در مدیریت بهتر انیمیشن‌ها کمک کند. این ویژگی به ما اجازه می‌دهد تا تایم‌لاین انیمیشن‌ها را به صورت مجزا و قابل تنظیم تعریف کنیم و از این طریق کنترل بیشتری روی نحوه و زمان‌بندی اجرای انیمیشن‌ها داشته باشیم.

استفاده از animation-timeline در CSS به ما امکان می‌دهد که تمامی مراحل انیمیشن از جمله شروع، توقف و از سرگیری انیمیشن‌ها را دقیق‌تر تنظیم کنیم. این قابلیت به برنامه‌نویسان اجازه می‌دهد تا انیمیشن‌های پیچیده‌تر و همگام‌سازی‌های دقیق‌تری ایجاد کنند و از سوی دیگر بهره‌وری و کنترل بیشتری بر انیمیشن‌های خود داشته باشند.

گاهی اوقات ممکن است بخواهیم انیمیشنی به‌طور هم‌زمان با رویدادی خاص اجرا شود، یا به هنگام وقوع یک تغییر معین در یک کامپوننت به‌صورت خودکار متوقف شود. animation-timeline این امکان را به سادگی فراهم می‌سازد. به عنوان مثال، فرض کنید یک انیمیشن دارید که با کلیک کاربر شروع می‌شود و با کلیک مجدد متوقف می‌شود. با استفاده از تایم‌لاین، پیاده‌سازی این رفتار به مراتب ساده‌تر و قابل تنظیم‌تر خواهد بود.

حتی می‌توان animation-timeline را با رویدادهای مختلف ترکیب کرد و انیمیشن‌های هماهنگ با نیازهای پیچیده‌تری ایجاد نمود. به این ترتیب، ایجاد انیمیشن‌هایی که با دقت بیشتری به نیازهای کاربردی واکنش نشان دهند، میسر خواهد بود.

در ادامه، نمونه کد ساده‌ای برای استفاده از animation-timeline آورده‌ایم تا این موضوع بیشتر روشن شود.

@keyframes example {
0% {transform: translateX(0);}
100% {transform: translateX(100px);}
}

.element {
animation-name: example;
animation-timeline: myTimeline;
animation-duration: 4s;
}

در کد بالا، ابتدا ما انیمیشنی به نام example تعریف کرده‌ایم که یک المان را از نقطه 0 تا 100px به سمت محور x جابجا می‌کند.
سپس، از animation-timeline استفاده می‌کنیم تا تایم‌لاین مربوط به انیمیشن تنظیم شود.
با تعریف animation-duration به مقدار 4 ثانیه، این انیمیشن در مدت زمانی که انتظار می‌رفت اجرا خواهد شد.

سوالات متداول

؟

چگونه می‌توانم یک animation-timeline در CSS ایجاد کنم؟

؟

چه تفاوتی بین animation-duration و animation-timeline وجود دارد؟

؟

آیا animation-timeline در همه مرورگرها پشتیبانی می‌شود؟