مقالات وب و برنامه نویسی‎

مقایسه میان CSS3 و jQuery در تولید انیمیشن

مقایسه میان CSS3 و jQuery در تولید انیمیشن

در گذشته برای ایجاد انیمیشنی قدرتمند که قادر به کنترل تصاویر و متنها بصورت کامل باشد از محیط Flash استفاده میگردید. این محیط به توسعه دهندگان وب این امکان را میداد تا بتوانند تصاویر متحرک و افکتهای زیبا را به درون صفحات وب خود بیاورند اگرچه استفاده از این امکان برای ما معضلاتی نظیر ضعفهای امنیتی و همچنین زمان طولانی بارگذاری صفحات وب در زمانی که شما از سرعت اینترنت متوسط استفاده میکردید به دنبال داشت.

بعد از مدتی JavaScript و بدنبال آن کتابخانه های وابسته به آن نظیر jQuery ،Prototype و Moo tools برای ایجاد تصاویر متحرک آمدند که بسیاری از ضعفهای Flash را پوشش می دادند و جلوهای غنی انیمیشن را با حجمهای بسیار کمتر ایجاد می کردند. در سالهای اخیر عنصر جدیدی برای ایجاد تصاویر متحرک در وب بنام CSS3 پا به عرصه گذاشته که مزایای خوبی نظیر افزایش سرعت بعلت استفاده از بارگذاری مستقیم توسط مرورگر را در اختیار ما قرار می دهد. ما در این مقاله سعی داریم تا مقایسه ای میان CSS و jQuery در جهت تولید تصاویر متحرک انجام دهیم.

ایجاد یک انیمیشن در CSS

قبل از بررسی این موضوع در صورتی که آشنایی قبلی با انیمیشن سازی با استفاده از CSS ندارید توصیه میکنم تا با مرور مطالبی آموزشی در سایتهایی نظیر W3Schools.com با مقدمات اینکار آشنا شوید. همچنین وقتی بنده از واژه انیمیشن در قسمت CSS استفاده میکنم منظورم هر دو مورد CSS Transitions و CSS Animations است، هرچند که کاربرد آنها با هم تفاوت دارد. Transitionها رخداد محور بوده و با رخدادهایی نظیر :hover و یا :active فعال میگردند در صورتی کهAnimationها پیچیده تر بوده و بصورت خطی در هنگام بارگذاری صفحه اجرا میشوند ( هرچند میتوان آنها را توسط JavaScript نیز کنترل کرد).

لطفا به مثال ذیل توجه فرمایید، در این مثال سعی شده تا افکت محو شدن در jQuery ( .fadeIn())
شبیه سازی شود.

HTML

Anything Inside…

CSS

#example1{

width:5em;

height:10em;

background:blue;

animation:fadeIn 5s;

}

@keyframes fadeIn{

from {opacity:0;}

to {opacity:100;}

}

در مثال بالا سعی شده تا تمرکز اجرا بر روی مرورگرهای امروزی باشد و در صورتی که بخواهیم این مورد را به مرورگرهای قدیمی نیز تعمیم دهیم باید از پیشوندهایی نظیر –webkit- ، -moz- و… در تعریف انیمیشن خود استفاده نماییم. همچنین استفاده از نام fadeIn صرفا جهت هم نام سازی با jQuery بوده و شما میتوانید هر نام دلخواه دیگری را نیز برای انیمیشن خود انتخاب کنید.

ایجاد انیمیشن با استفاده از jQuery

حال که شما در مثال بالا اندکی با اساس تولید تصاویر متحرک در CSS آشنا شدید، بهتر است نمونه ای مشابه با کمک jQuery نیز بررسی شود. در مثال ذیل سعی شده تا با استفاده از رخداد .click و همچنین قابلیت .animate() عملیات بالا را اجرایی کنیم. در ابتدا با کمک CSS شی خود را طراحی کرده سپس با jQuery مراحل ظاهر شدن و همچنین زمان اجرای آنرا کنترل خواهیم کرد. لطفا دقت نمایید که قابلیت animate() در jQuery قادر به ایجاد تغییرات صرفا در خصوصیاتی از CSS میباشد که بصورت عددی مقدار دهی شده اند . بطور مثال ما قادر نیستیم که خصوصیت رنگ پس ضمینه را تغییر دهیم. برای اینکار میتونید مثلا از jQuery UI کمک بگیرید.

HTML

Anything Inside…

CSS

#example2{

width:0;

height:0;

overflow:hidden;

background:blue;

}

jQuery

$(‘#button’).click(function() {

$(‘#example2’).animate({

height: “10em”,

width: “5em”,

opacity: “100”,}, 4000

});

});

برای اجرای فرمان فوق شما باید کتابخانه jQuery را نیز در صفحه خود وارد نمایید.

همانطور که در بالا مشاهده مینمایید پیاده سازی انیمشن با CSS به مراتب سبکتر و ساده تر است. همچنین برای مقایسه بهتر ما با پیاده سازی یک محک که در آن چندین عنصر بصورت همزمان توسط CSS3 و همچنین jQuery دستخوش تغییر میگردند به نتایج بهتری می رسیم.

CSS

مدت زمان اجرای این محک تقریبا 2.29 ثانیه

jQuery

مدت زمان اجرای این محک تقریبا 8.33 ثانیه

محک فوق نشان میدهد که CSS بصورت کاملا آشکاری سریعتر از jQuery در اجرای تصاویر متحرک میباشد. علت این امر بخاطر آن است که CSS مستقیما از ساختارهای بومی خود مرورگر برای اجرای فرایند متحرک سازی استفاده می کند و این امکان را خواهد داشت تا دستورات گرافیکی را بکمک GPU سیستم به مورد اجرا بگذارد.

البته در این بین CSS نقاط ضعفی نیز دارد بطور مثال در هنگامی که یک شکل ثابت، هم در حال حرکت و هم تغییر سایز است، شما نمی توانید این عملیات را در دو قالب زمانی مختلف و همزمان به اجرا در آورید در حالی که jQuery این ضعف را ندارد.

نتیجه گیری

بدلیل برتری هایی که در بالا بیان گردید، میتوان نتیجه گرفت که CSS عنصر مناسبتری جهت اجرای طرحهای متحرک وب می باشد. همچنین بهتر است در صورتی که تمایل به استفاده از امکانات JavaScript در اجرای انیمیشن را دارید، از JavaScript Dom و یا از کتابخانه Velocity.js و یا GSAP که دارای کارایی بمراتب بهینه تری هستند استفاده نمایید.

لیست دوره های ارائه شده در دپارتمان وب و برنامه نویسی

ردیف عنوان دوره روزهای تشکیل تاریخ شروع تعداد ساعت شهریه (ریال) توضیح پیش نیاز ثبت نام
1 Web Design I (HTML5, CSS3 with Dreamweaver) یکشنبه, سه شنبه 17:30 تا 20:30 03-08-27 58

43,000,000

ثبت نام
2 Web Design I ( HTML5, CSS3 with Dreamweaver) آنلاین یکشنبه, سه شنبه 17:30 تا 20:30 03-08-27 58

34,000,000

ثبت نام
3 Web Design II (Responsive Design with Bootstrap, Less & Sass) پنجشنبه 14:30 تا 18:00 03-09-01 34

39,000,000

ثبت نام
4 Web Design III (JavaScript & JQuery & Ajax) پنجشنبه 13:00 تا 18:00 03-08-24 58

70,000,000

ثبت نام
5 Web Design III (JavaScript & jQuery & Ajax) آنلاین پنجشنبه 13:00 تا 18:00 03-08-24 58

57,000,000

ثبت نام
6 Web Design III (JavaScript & JQuery & Ajax) جمعه 13:00 تا 20:00 03-09-16 58

70,000,000

ثبت نام
7 Web Design III (JavaScript & jQuery & Ajax) آنلاین جمعه 13:00 تا 18:00 03-09-16 58

57,000,000

ثبت نام
8 مقدمه ای بر الگوریتم و برنامه نویسی آنلاین شنبه, دوشنبه 17:30 تا 20:30 03-08-19 40

22,000,000

ثبت نام
9 مقدمه ای بر الگوریتم و برنامه نویسی شنبه, دوشنبه 17:30 تا 20:30 03-08-19 40

26,000,000

ثبت نام
10 مقدمه ای بر الگوریتم و برنامه نویسی آنلاین یکشنبه, سه شنبه 14:30 تا 17:30 03-08-29 40

22,000,000

ثبت نام
11 مقدمه ای بر الگوریتم و برنامه نویسی یکشنبه, سه شنبه 14:30 تا 17:30 03-08-29 40

26,000,000

ثبت نام
12 Wordpress & SEO PACK یکشنبه, سه شنبه 17:30 تا 20:30 03-08-20 75

85,000,000

ثبت نام
13 Programming with Python پنجشنبه 13:00 تا 18:00 03-08-24 60

64,000,000

ثبت نام
14 (آنلاین) programming with python پنجشنبه 13:00 تا 18:00 03-08-24 60

51,000,000

ثبت نام
15 Programming with Python جمعه 13:00 تا 18:00 03-09-02 60

64,000,000

ثبت نام
16 Programming with Python یکشنبه, سه شنبه 17:30 تا 20:30 03-09-04 60

64,000,000

ثبت نام
17 (آنلاین) programming with python یکشنبه, سه شنبه 17:30 تا 20:30 03-09-04 60

51,000,000

ثبت نام
18 Python Web Development With Django جمعه 08:00 تا 13:00 03-08-25 50

59,000,000

ثبت نام
19 Data Analysis with Python جمعه 14:00 تا 18:00 03-08-25 30

33,000,000

ثبت نام
20 Machine Learning with Python جمعه 08:00 تا 13:00 03-08-25 50

55,000,000

ثبت نام
21 بهینه سازی برای موتورهای جست و جو- SEO پنجشنبه 16:00 تا 20:00 03-08-24 40

66,000,000

ثبت نام
22 دوره طراحی رابط و تجربه کاربری (UI/UX) پنجشنبه 13:00 تا 17:00 03-08-24 40

47,000,000

ثبت نام
23 C# Programming پنجشنبه 13:00 تا 18:00 03-08-24 60

59,000,000

ثبت نام
24 C# Programming آنلاین پنجشنبه 13:00 تا 18:00 03-08-24 60

48,000,000

ثبت نام
25 برنامه نویسی به زبان ++C جمعه 13:00 تا 18:00 03-08-25 60

48,000,000

ثبت نام
26 برنامه نویسی به زبان ++C آنلاین جمعه 13:00 تا 18:00 03-08-25 60

39,000,000

ثبت نام
27 PHP & MYSQL Web Development جمعه 13:00 تا 18:00 03-09-02 80

79,000,000

ثبت نام
28 Java SE8 Programming جمعه 13:00 تا 18:00 03-08-25 50

54,000,000

ثبت نام
29 Android Pack پنجشنبه 13:00 تا 18:00 03-08-24 70

74,000,000

ثبت نام
30 SQL Server 2022 Database Development یکشنبه, سه شنبه 17:30 تا 20:30 03-08-29 60

59,000,000

ثبت نام
31 SQL Server 2022 Database Development آنلاین شنبه 19:00 تا 22:00 03-09-03 60

51,000,000

ثبت نام
32 Microsoft ASP.net MVC جمعه 08:00 تا 13:00 03-09-02 60

92,000,000

ثبت نام

مقالات مرتبط با وب و برنامه‌نویسی

[carousel_posts_sc type=”cbp_type02″ scroll=”yes” category=”web-programming-training”]

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *