---
id: 587d78a7367417b2b2512adf
title: Learn How the CSS @keyframes and animation Properties Work
challengeType: 0
videoUrl: ''
localeTitle: تعلم كيف تعمل CSSkeyframes وخصائص الرسوم المتحركة
---
## Description
لتحريك عنصر ، تحتاج إلى معرفة خصائص الحركة وقاعدة @keyframes
. تتحكم خصائص الرسم المتحرك في الكيفية التي ينبغي أن يتصرف بها @keyframes
القاعدة @keyframes
بما يحدث أثناء ذلك الرسم المتحرك. هناك ثمانية خصائص للرسوم المتحركة في المجموع. وهذا التحدي يبقيه بسيطة وتغطية اثنين من أهمها أولا: animation-name
يحدد اسم للرسوم المتحركة، والذي يستخدم لاحقا من قبل @keyframes
أن أقول CSS التي تسيطر على الذهاب مع والرسوم المتحركة. تحدد animation-duration
الوقت للرسوم المتحركة. @keyframes
هو كيفية تحديد ما يحدث بالضبط داخل الرسوم المتحركة على مدار المدة. يتم ذلك عن طريق إعطاء خصائص CSS "إطارات" محددة أثناء الرسوم المتحركة ، مع نسب تتراوح من 0٪ إلى 100٪. إذا قارنت هذا بفيلم ، فإن خصائص CSS لـ 0٪ هي كيفية عرض العنصر في المشهد الافتتاحي. تتمثل خصائص CSS بنسبة 100٪ في كيفية ظهور العنصر في النهاية قبل بدء القوائم مباشرةً. بعد ذلك ، يقوم CSS بتطبيق السحر على نقل العنصر خلال المدة المحددة للعمل على المشهد. في ما يلي مثال لتوضيح استخدام @keyframes
وخصائص الرسم المتحرك: #anim {
اسم الرسوم المتحركة: ملونة.
مدة الرسوم المتحركة: 3 ثوانٍ ؛
}
keyframes الملونة {
0٪
لون الخلفية: أزرق ؛
}
100٪ {
لون الخلفية: أصفر.
}
}
للعنصر مع anim
الهوية، ورمز المقتطف أعلاه يحدد animation-name
إلى colorful
ويحدد animation-duration
إلى 3 ثوان. ثم @keyframes
القاعدة @keyframes
بخصائص الرسم المتحرك بالاسم colorful
. يضبط اللون على اللون الأزرق في بداية الرسم المتحرك (0٪) والذي سينتقل إلى اللون الأصفر بنهاية الصورة المتحركة (100٪). أنت لا تقتصر على الانتقالات في نهاية البداية فقط ، يمكنك تعيين خصائص للعنصر لأي نسبة تتراوح بين 0٪ و 100٪.
## Instructions
أنشئ rect
للعنصر الذي يحتوي على rect
id ، من خلال تعيين animation-name
على قوس قزح animation-duration
إلى 4 ثوانٍ. بعد ذلك ، قم بالإعلان عن قاعدة @keyframes
، وقم بتعيين background-color
في بداية الرسم المتحرك ( 0%
) إلى اللون الأزرق ، وسط الرسم المتحرك ( 50%
) إلى اللون الأخضر ، ونهاية الحركة ( 100%
) إلى الأصفر.
## Tests
```yml
tests:
- text: يجب أن يكون للعنصر ذو معرف rect
خاصية animation-name
ذات قيمة قوس قزح.
testString: 'assert($("#rect").css("animation-name") == "rainbow", "The element with id of rect
should have an animation-name
property with a value of rainbow.");'
- text: يجب أن يكون للعنصر ذي معرف rect
خاصية animation-duration
ذات قيمة 4 أضعاف.
testString: 'assert($("#rect").css("animation-duration") == "4s", "The element with id of rect
should have an animation-duration
property with a value of 4s.");'
- text: يجب أن تستخدم قاعدة @keyframes
animation-name
لقوس قزح.
testString: 'assert(code.match(/@keyframes\s+?rainbow\s*?{/g), "The @keyframes
rule should use the animation-name
of rainbow.");'
- text: يجب أن تستخدم قاعدة @keyframes
لقوس قزح background-color
أزرق عند 0٪.
testString: 'assert(code.match(/0%\s*?{\s*?background-color:\s*?blue;\s*?}/gi), "The @keyframes
rule for rainbow should use a background-color
of blue at 0%.");'
- text: يجب أن تستخدم قاعدة @keyframes
لقوس قزح background-color
خضراء بنسبة 50٪.
testString: 'assert(code.match(/50%\s*?{\s*?background-color:\s*?green;\s*?}/gi), "The @keyframes
rule for rainbow should use a background-color
of green at 50%.");'
- text: يجب أن تستخدم قاعدة @keyframes
لقوس قزح background-color
أصفر بنسبة 100٪.
testString: 'assert(code.match(/100%\s*?{\s*?background-color:\s*?yellow;\s*?}/gi), "The @keyframes
rule for rainbow should use a background-color
of yellow at 100%.");'
```
## Challenge Seed
## Solution
```js
// solution required
```