CSS Animations
center|500px|مثال بسيط لتحريك عنصر باستخدام CSS
تحريكات CSS: دليل شامل للمبتدئين
تحريكات CSS (CSS Animations) هي طريقة رائعة لإضافة حركة وتفاعل إلى صفحات الويب الخاصة بك دون الحاجة إلى استخدام JavaScript. تسمح لك بتحريك خصائص CSS بمرور الوقت، مما يخلق تأثيرات بصرية جذابة ويحسن تجربة المستخدم. في هذا المقال، سنستكشف تحريكات CSS بعمق، بدءًا من الأساسيات وحتى التقنيات المتقدمة. سنغطي كيفية إنشاء التحريكات البسيطة والمعقدة، وكيفية التحكم فيها، وكيفية تحسينها للأداء. هذا الدليل موجه للمبتدئين، وسنحاول شرح المفاهيم بطريقة واضحة وسهلة الفهم.
ما هي تحريكات CSS؟
تحريكات CSS هي سلسلة من التغييرات في خصائص CSS للعنصر بمرور الوقت. على عكس التحولات (CSS Transitions) التي تُطبق على تغيير حالة واحد (مثل التحويم)، التحريكات تسمح لك بتحديد سلسلة كاملة من التغييرات، مما يتيح لك إنشاء تأثيرات أكثر تعقيدًا.
فكر في الأمر كأنك تقوم بإنشاء فيلم رسوم متحركة بسيط. بدلاً من مجرد تغيير لون مربع عند التحويم، يمكنك جعله يتحرك عبر الشاشة، ويتغير لونه، ويدور في نفس الوقت. هذا هو ما يجعل التحريكات قوية جدًا.
لماذا نستخدم تحريكات CSS؟
- الأداء: تحريكات CSS عادة ما تكون أكثر كفاءة من التحريكات التي تعتمد على JavaScript، لأن المتصفح يمكنه تحسينها بشكل أفضل.
- البساطة: كتابة تحريكات CSS غالبًا ما تكون أسهل وأكثر وضوحًا من كتابة نفس التحريكات باستخدام JavaScript.
- التحكم: توفر CSS تحكمًا دقيقًا في التوقيت والتسارع والتأخير للتحريكات.
- التجربة المرئية: تضيف التحريكات عمقًا وتفاعلًا إلى صفحات الويب، مما يجعلها أكثر جاذبية للمستخدمين. يمكن أن تساعد في توجيه انتباه المستخدم إلى العناصر المهمة أو توضيح التفاعلات.
الأساسيات: @keyframes
اللبنة الأساسية لتحريك CSS هي القاعدة `@keyframes`. تحدد هذه القاعدة سلسلة من الإطارات الرئيسية (keyframes) التي تحدد قيم الخصائص التي يجب أن يتغير بها العنصر في أوقات مختلفة.
بناء الجملة:
```css @keyframes اسم_التحريك {
0% { /* خصائص العنصر في بداية التحريك */ } 50% { /* خصائص العنصر في منتصف التحريك */ } 100% { /* خصائص العنصر في نهاية التحريك */ }
} ```
- `اسم_التحريك`: اسم تعريفي للتحريك. يمكنك اختيار أي اسم تريده.
- `0%`: يمثل بداية التحريك.
- `50%`: يمثل منتصف التحريك.
- `100%`: يمثل نهاية التحريك.
- يمكنك إضافة المزيد من الإطارات الرئيسية (مثل 25%، 75%) لتحديد المزيد من التغييرات التفصيلية.
مثال:
```css @keyframes moveBox {
0% { left: 0px; background-color: red; } 50% { left: 200px; background-color: blue; } 100% { left: 400px; background-color: green; }
} ```
هذا التحريك، المسمى `moveBox`، سيجعل العنصر يتحرك من اليسار إلى اليمين مع تغيير لونه من الأحمر إلى الأزرق ثم إلى الأخضر.
تطبيق التحريك على العنصر
بعد تعريف التحريك باستخدام `@keyframes`، تحتاج إلى تطبيقه على العنصر الذي تريد تحريكه. يتم ذلك باستخدام خاصية `animation`.
بناء الجملة:
```css animation-name: اسم_التحريك; animation-duration: المدة_بالثواني; animation-timing-function: دالة_التوقيت; animation-delay: التأخير_بالثواني; animation-iteration-count: عدد_التكرارات; animation-direction: اتجاه_التحريك; animation-fill-mode: وضع_الملء; ```
- `animation-name`: اسم التحريك الذي تم تعريفه باستخدام `@keyframes`.
- `animation-duration`: المدة التي يستغرقها التحريك لإكماله.
- `animation-timing-function`: تحدد كيف تتغير سرعة التحريك بمرور الوقت. (سنناقش هذا بالتفصيل لاحقًا).
- `animation-delay`: الوقت الذي يجب أن ينتظر فيه التحريك قبل البدء.
- `animation-iteration-count`: عدد المرات التي يجب أن يتكرر فيها التحريك. يمكن أن يكون عددًا صحيحًا أو `infinite` للتكرار اللانهائي.
- `animation-direction`: يحدد ما إذا كان يجب أن يتحرك التحريك للأمام (`normal`)، للخلف (`reverse`)، للأمام ثم للخلف (`alternate`)، أو للخلف ثم للأمام (`alternate-reverse`).
- `animation-fill-mode`: يحدد قيم الخصائص قبل وبعد التحريك. (`none`, `forwards`, `backwards`, `both`).
مثال:
```css .box {
width: 100px; height: 100px; position: relative; animation-name: moveBox; animation-duration: 3s; animation-timing-function: linear; animation-iteration-count: infinite; animation-direction: alternate;
} ```
هذا الكود سيطبق التحريك `moveBox` على العناصر التي تحمل الفئة `box`. سيستغرق التحريك 3 ثوانٍ لإكماله، وسيتحرك بسرعة ثابتة، وسيتكرر إلى الأبد، وسيتغير اتجاهه في كل مرة.
دوائر التوقيت (Timing Functions)
خاصية `animation-timing-function` تحدد كيف تتغير سرعة التحريك بمرور الوقت. هناك عدة قيم محددة مسبقًا يمكنك استخدامها:
- `linear`: سرعة ثابتة طوال التحريك.
- `ease`: يبدأ التحريك ببطء، ثم يتسارع، ثم يتباطأ في النهاية. (افتراضي)
- `ease-in`: يبدأ التحريك ببطء.
- `ease-out`: ينتهي التحريك ببطء.
- `ease-in-out`: يبدأ وينتهي التحريك ببطء.
- `cubic-bezier(n, n, n, n)`: تسمح لك بتحديد دالة توقيت مخصصة باستخدام منحنى Bezier. هذا يوفر تحكمًا دقيقًا في سرعة التحريك. يمكنك استخدام أدوات عبر الإنترنت مثل [1](https://cubic-bezier.com/) لتصميم منحنيات Bezier بسهولة.
خصائص إضافية
- `animation-play-state`: يسمح لك بإيقاف أو تشغيل التحريك. يمكن أن تكون القيمة `running` (تشغيل) أو `paused` (إيقاف).
- `animation-delay`: يمكن تحديد قيم متعددة للتأخير، مفصولة بفاصلات. على سبيل المثال، `animation-delay: 0s, 1s, 2s;` سيؤدي إلى تأخير التحريك بمقدار 0 ثانية للعنصر الأول، و1 ثانية للعنصر الثاني، و2 ثانية للعنصر الثالث.
تحريكات متعددة على نفس العنصر
يمكنك تطبيق تحريكات متعددة على نفس العنصر عن طريق فصلها بفاصلات في خاصية `animation`.
مثال:
```css .box {
animation-name: moveBox, rotateBox; animation-duration: 3s, 2s; animation-timing-function: linear, ease;
} ```
هذا الكود سيطبق التحريك `moveBox` (الذي يحرك الصندوق) والتحريك `rotateBox` (الذي يدور الصندوق) على العنصر `box`. سيستغرق `moveBox` 3 ثوانٍ لإكماله، وسيتحرك بسرعة ثابتة، بينما سيستغرق `rotateBox` 2 ثانية لإكماله، وسيستخدم دالة التوقيت `ease`.
تحسين الأداء
- استخدم `transform` و `opacity` للتحريكات: هذه الخصائص يمكن تحريكها بكفاءة أكبر من الخصائص الأخرى، لأن المتصفح يمكنه استخدام تسريع الأجهزة (hardware acceleration) لتحريكها.
- تجنب تحريك الخصائص التي تتسبب في إعادة الرسم (repaint): مثل `width` و `height` و `top` و `left`. بدلاً من ذلك، استخدم `transform: translate()` لتحريك العنصر.
- استخدم `will-change` بحذر: خاصية `will-change` تخبر المتصفح أن العنصر سيتم تحريكه، مما يسمح له بتحسين الأداء. ومع ذلك، يمكن أن يؤدي استخدامها بشكل مفرط إلى مشاكل في الأداء.
- قلل من عدد التحريكات: كلما زاد عدد التحريكات على الصفحة، زاد العبء على المتصفح.
خلاصة
تحريكات CSS هي أداة قوية لإضافة حركة وتفاعل إلى صفحات الويب الخاصة بك. من خلال فهم الأساسيات واستخدام التقنيات المتقدمة، يمكنك إنشاء تأثيرات بصرية جذابة وتحسين تجربة المستخدم. تذكر دائمًا تحسين الأداء لضمان أن تحريكاتك تعمل بسلاسة على جميع الأجهزة.
روابط ذات صلة
- CSS Transitions
- CSS Transforms
- CSS Properties
- التحليل الفني للأسهم
- استراتيجيات التداول الثنائي
- مؤشرات التداول الثنائي
- تحليل حجم التداول
- إدارة المخاطر في التداول الثنائي
- تداول الاتجاه
- استراتيجية مارتينجال
- استراتيجية المضاعفة
- استراتيجية الدالة الأسية
- استراتيجية المتوسط المتحرك
- استراتيجية اختراق النطاق
- استراتيجية البولينجر باند
- استراتيجية RSI
- استراتيجية MACD
- الشموع اليابانية
- أنماط الشموع
- تداول الخيارات الثنائية للمبتدئين
- تداول العملات المشفرة
- تداول الفوركس
- تداول السلع
- تداول المؤشرات
- تداول الأسهم
- تداول العقود الآجلة
ابدأ التداول الآن
سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)
انضم إلى مجتمعنا
اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين