دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱
  • آبان

جلسه ۵۰ : انیمیشن در css

  • دسته‌بندی‌ها :
جلسه ۵۰ : انیمیشن در css
    • جزئیات
    • نوع مطلبآموزشی

      مقدمه

      با عرض سلام خدمت کاربران سایت پی وی لرن . در این پست آموزشی قصد داریم به آموزش. چگونگی کار با ویژگی انیمیشن (animations) در css بپردازیم. قابلیت انیمیشن در css به شما اجازه می دهد که با استفاده از ویژگی animations ، برای اکثر عناصر html قابلیت انیمیشن ایجاد کنید. بدون اینکه از جاوا اسکریپت و یا فلش استفاده کنید! با استفاده از این ویژگی می توانید قالب وب سایت خود را پویا و جذاب تر کنید. و کاربران از حضور طولانی در وب سایت شما لذت می برند.

      در پست های قبل در حوزه ی آموزش css ، ما به آموزش موضوعات توابع حرکات عناصر سه بعدی در css ، توابع انتقال و جابه جایی عناصر دو بعدی در css ،  توابع انتقال و جابه جایی عناصر سه بعدی در css  و در بحث جلوه های ویژه نیز به آموزش کار با افکت های سایه در css و کار با ویژگی Transitions در css پرداختیم.

      در ادامه بحث جلوه های ویژه در css در این پست به آموزش چگونگی کار با ویژگی انیمیشن در css پرداخته ایم.

       

      ویژگی انیمیشن در css

      ویژگی انیمیشن در css

      کار با ویژگی انیمیشن در css

      ویژگی animations اجازه می دهد که یک عنصر در یک بازه ی زمانی از یک style به style دیگری تغییر کند. با استفاده از این ویژگی می توانید خصوصیات بسیاری از یک عنصر html را در یک بازه ی زمانی تغییر دهید.

      برای استفاده از ویژگی انیمیشن در css ، شما ابتدا باید یک keyframes برای این ویژگی تعریف کنید. ویژگی keyframes خصوصیاتی که روی عنصر html در زمان اجرای animations ، تغییر می کند را نگه می دارد.

      پشتیبانی animation در مرورگرها

      در جدول زیر اعداد مربوط به هر مرورگر اولین نسخه ی آن مرورگر که از قابلیت animation پشتیبانی می کند را نشان می دهد.

      پیشوندهای -webkit-, -moz- یا -o- به این معنی است که در آن نسخه از مرورگر مربوطه باید از این پیشوندها در تعریف انیمیشن استفاده کنید.

      ساختار کلی

      مثال: در این مثال ابتدا خصوصیاتی که از عنصر html قرار است تغییر کند در داخل یک keyframes به نام  ” example ”  تعریف می شود. سپس ویژگی animations باید هم نام keyframes که تعریف کرده ایم یعنی ” example ” نام گذاری شود تا ارتباط بین این دو ویژگی برقرار شود. و در نهایت مدت زمان اثر گذاری انیمیشن مشخص شده است:

      مثال : نمونه انیمیشن
      خودتان امتحان کنید »

      نکته: اگر مقدار ویژگی animation-duration (که مدت زمان اجرای انیمیشن را مشخص می کند) را مشخص نکنید. بصورت پیش فرض “۰” در نظر گرفته می شود . و هیچ نتیجه ای در اجرا مشاهده نخواهید کرد.

      چندین عمل در یک اجرای animation

      شما می توانید  مدت زمان اجرای انیمیشن را به قسمت های مختلف تقسیم کرده و برای هر قسمتی اعمال خاصی مشخص کنید.

      مثال: در این مثال زمانی که انیمیشن ۲۵ درصد کامل شده سپس زمانی که ۵۰ درصد کامل می شود و به همین صورت تا ۱۰۰ درصد. برای هر کدام از این قسمت ها رنگ پس زمینه عنصر html تغییر می کند:

      مثال : حالت دوم تعریف تغییرات در انیمیشن
      خودتان امتحان کنید »

      مثال ۲: می توانید در هر کدام از قسمت ها چندین عمل را تعریف کنید:

      مثال : مثال -2
      خودتان امتحان کنید »

      تاخیر در اجرای انیمیشن

      از خصوصیت animation-delay برای مشخص کردن تاخیر اجرای انیمیشن استفاده می شود.

      مثال زیر تا قبل از شروع انیمیشن تاخیر ۲ ثانیه دارد:

      مثال : تاخیر 2 ثانیه ای در اجرای انیمیشن
      خودتان امتحان کنید »

      در مثال زیر animation-delay مقدار منفی (-۲) دارد، به این ترتیب از مدت زمان اجرا کم می شود، و انیمیشن ۲ ثانیه اجرا خواهد شد:

      مثال : مقدار منفی در animation_delay
      خودتان امتحان کنید »

      تعداد دفعات اجرای انیمیشن

      با استفاده از ویژگی animation-iteration-count می توانید تعداد دفعات تکرار شدن انیمیشن را تعیین کنید

      مثال:

      مثال : خصوصیت animation_delay
      خودتان امتحان کنید »

      مثال ۲: در این مثال با تخصیص مقدار “infinite” به ویژگی animation-iteration-count ، انیمیشن دائم اجرا خواهد شد:

      مثال : مقدار infinite
      خودتان امتحان کنید »

      اجرای انیمیشن در جهت معکوس یا در چرخه های متناوب

      با استفاده از ویژگی animation-direction می تواندی تعیین کنید که انیمیشن در جهت معکوس یا در چرخه های متناوب اجرا شود. مقادیر ویژگی  animation-direction به شرح زیر است:

      • normal : انمیشن بصورت عادی اجرا می شود. (پیش فرض).
      • reverse : انیمشن در جهت معکوس اجرا می شود.
      • alternate : ابتدا انیمیشن در حالت عادی و سپس معکوس اجرا می شود.
      • alternate-reverse : ابتدا انیمیشن در حالت معکوس و سپس عادی اجرا می شود. (برعکس حالت alternate).

      مثال ۱:

      مثال : اجرای معکوس انیمیشن
      خودتان امتحان کنید »

      مثال ۲:

      مثال : مقدار alternate
      خودتان امتحان کنید »

      مثال ۳:

      مثال : مقدار alternate-reverse
      خودتان امتحان کنید »

      مشخص کردن منحنی سرعت انیمیشن

      خصوصیت animation-timing-function منحنی سرعت انیمیشن را مشخص می کند.

      خصوصیت animation-timing-function شامل ۶ مقدار زیر است:

      • ease   :  یک انیمیشن با شروع آهسته، پس از آن سریع، و سپس به آرامی پایان می یابد. (این به طور پیش فرض)
      • linear  : یک انیمیشن با همان سرعت را از ابتدا تا انتها مشخص می کند.
      • ease-in   : تعیین یک انیمیشن با شروع آهسته.
      • ease-out  : مشخص کردن انیمیشن با پایان آهسته.
      • ease-in-out  :  تعیین یک انیمیشن با شروع و پایان آهسته.
      • (cubic-bezier(n,n,n,n  :شما می توانید مقادیر خود را در یک عملکرد cubic-bezier تعریف کنید.

      مثال زیر شامل تست تمام حالت های فوق می باشد :

      مثال : مثال animation-timing-function
      خودتان امتحان کنید »

      مشخص کردن fill-mode برای یک انیمیشن

      انیمیشن CSS بر یک عنصر قبل از اولین فریم keyframe یا بعد از آخرین فریم keyframe تأثیر نمی گذارد.

      خصوصیات anim-fill-mode می تواند این رفتار را برطرف کند.

      خصوصیت anim-fill-mode یک style را برای عنصر target مشخص می کند وقتی که انیمیشن پخش نمی شود (قبل از شروع آن، پس از پایان دادن به آن، یا هر دو).

      خصوصیت animation-fill-mode شامل مقادیر زیر است :

      • none  : مقدار پیش فرض. انیمیشن قبل و بعد از اجرا هیچ style خاصی برای آن اعمال نمی شود.
      • forwards  : این عنصر مقادیر style را که توسط آخرین فرمان کلید تعیین می شود،مشخص می کند (به جهت حرکت و انیمیشن-تکرار شمارش بستگی دارد.)
      • backwards  : این عنصر مقادیر style را که توسط اولین فریم کلید تعیین شده (بستگی به جهت حرکت انیمیشن) تعیین می کند، دریافت می کند و در طول مدت زمان تاخیر انیمیشن حفظ می شود
      • both  : انیمیشن  از هر دو حالت forwards و backwards پیروی می کند، ویژگی های انیمیشن را در هر دو جهت گسترش می دهد.

      مثال زیر اجازه می دهد که عنصر <div> مقادیر style را از آخرین کادر کلید هنگامی که انیمیشن به پایان می رسد را حفظ کند:

      مثال : حالت forwards
      خودتان امتحان کنید »

      حالت backwards :

      مثال : حالت backwards
      خودتان امتحان کنید »

      حالت both :

      مثال : حالت both
      خودتان امتحان کنید »

      خلاصه کردن کدها و خصوصیات انیمیشن

      مثال زیر یک حالت استفاده از ۶ خصوصیت انیمیشن را نشان می دهد:

      مثال : تعریف 6 خصوصیت انیمیشن
      خودتان امتحان کنید »

      شما می توانید با استفاده از ویژگی animation تمام خصوصیات فوق را در یک خط کد کوتاه مانند زیر تعریف کنید:

      مثال : کوتاه کردن تعداد کدها
      خودتان امتحان کنید »

      خصوصیات animation در CSS

      خصوصیتتوضیحات
      @keyframesکد animation را مشخص می کند.
      animationامکان تعریف تمام خصوصیات زیر را در یک انتساب کوتاه می دهد.
      animation-delayمدت تاخیر در شروع اجرای انیمیشن را مشخص می کند.
      animation-directionمشخص می کند که آیا انیمیشن باید به جلو، عقب، یا در چرخه های متناوب اجرا شود.
      animation-durationمدت زمان اجرای انیمیشن را مشخص می کند.
      animation-fill-modeیک Style را برای عنصر مشخص می کند هنگامی که انیمیشن اجرا نمی شود (قبل از شروع آن، پس از پایان دادن به آن، یا هر دو)
      animation-iteration-countتعداد دفعات اجرای انیمیشن را مشخص می کند.
      animation-nameنام انیمیشن را برای شناسایی در زمان استفاده از @keyframes مشخص می کند.
      animation-play-stateتعیین اینکه آیا انیمیشن در حال اجرا است یا متوقف شده است.
      animation-timing-functionمنحنی سرعت انیمیشن را مشخص می کند.

      کلام آخر

      یکی از قابلیت ها و جلوه های ویژه ای که کاربرد زیادی در اغلب وب سایت ها دارد، جلوه های ویژه ی انیمیشن در عناصر html است، کافیست که با طرز کار با ویژگی انیمیشن در css  آشنایی داشته باشید تا قالب وب سایتی پویا و جذاب خلق کنید.

      QR:  جلسه ۵۰ : انیمیشن در css
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر
      2. تصویر کاربر
      3. تصویر کاربر
        • تصویر کاربر