الاستمرار في ممارسة الرسوم المتحركة لدينا من الجزء السابق واحد.
سنضيف في بعض الرسوم المتحركة إلى تطبيقنا الزاوي. على
وجه الخصوص، سوف نضيف في الرسوم المتحركة التي سيتم تشغيلها
عندما تحدث تغييرات المسار داخل تطبيق صفحة واحدة لدينا.
وسوف نضيف أيضا في الرسوم المتحركة التي تمكن من
عرض عرض عندما يتم جلب البيانات من جانب الخادم،
لذلك عندما كنت رفض الدوار في العرض الخاص بك ومن ثم عرض العرض،
نريد أن يتم عرض العرض على الشاشة
بدلا من مجرد ظهور كل مفاجئة
لذلك، واثنين من الرسوم المتحركة الجديدة التي سوف نضيف في هذا التمرين.
على طول الطريق عندما يكون لديك رسوم متحركة متعددة في التطبيق الخاص بك،
قد يكون من الأفضل أن refactor الشفرة بطريقة أكثر
قابلية للإدارة بدلاً من تضمين
كل جزء من الزناد في كل ملف من الملفات
داخل مكوناتنا من تطبيقنا الزاوي.
لذلك، دعونا نفعل كل هذه الخطوات كجزء الثاني من ممارسة الرسوم المتحركة.
أول شيء سأقوم به هو أننا سوف refactor
التعليمات البرمجية التي قمنا بها بالفعل كجزء واحد من هذا التمرين الرسوم المتحركة.
هذا النهج الذي أقوم بتوضيحه لك هنا هو مجرد نهجي المقترح.
ليس عليك بالضرورة اتباع هذه الطريقة بالضبط،
لكنني أشعر أن هذا يساعد على تنظيم الرمز بشكل أفضل بكثير.
لذلك، ما سأقوم به هو تماما مثل كان لدينا مجلد منفصل للخدمات،
كان لدينا مجلد منفصل للموارد المشتركة وهلم جرا،
وأنا ذاهب إلى إنشاء مجلد جديد اسمه الرسوم المتحركة.
سنقوم بتخزين جميع التعليمات البرمجية ذات الصلة للرسوم المتحركة هناك ومن ثم الاستفادة منه عن طريق استيراده
أينما كان ذلك مطلوبًا داخل مكوناتنا في تطبيقنا الزاوي.
لذلك، والذهاب إلى التعليمات البرمجية لدينا،
داخل مجلد التطبيق أنا ذاهب إلى إنشاء مجلد جديد وتسمية الرسوم المتحركة.
داخل مجلد الرسوم المتحركة هذا،
سأقوم بإنشاء ملف جديد ولعدم وجود كلمة أفضل
سأطلق عليه ملف app.animation.ts.
ثم داخل هذا، سأقوم باستيراد
الطبقات المختلفة من الرسوم المتحركة الزاوي التي قمت بها في مكون DishDetail.
لذا، انتقل إلى مكون DishDetail،
ستتذكر أن أول شيء فعلته هو
أنني أضفت هذا الخط إلى مكون DishDetail.
أنا ذاهب لقطعه من مكون DishDetail
وبدلا من ذلك لصقه في الرسوم المتحركة التطبيق،
بحيث أينما يتم
تضمين هذه الرسوم المتحركة التطبيق عن طريق استيراده إلى المكونات الأخرى لدينا،
وهذا سوف يأتي تلقائيا للحق هناك.
الآن، ضمن هذا التطبيق الرسوم المتحركة،
وأنا ذاهب لخلق بعض وظائف المصنع التي من شأنها تصدير المشغلات المختلفة.
أول وظيفة المصنع التي سأقوم بإنشاء
وظيفة التصدير هذه وسميها الرؤية.
ستقوم وظيفة الرؤية هذه بإرجاع الشفرة
المقابلة للمشغل الذي قمنا به في مكون DishDetail.
لذا، بالعودة إلى مكون DishDetail،
أنا فقط ذاهب لقطع هذا الرمز بأكمله للمشغل من هنا ثم العودة إلى
ملف animation.ts التطبيق ثم لصقه في
مكانه هناك في وظيفة هنا.
يصبح هذا الآن دالة متوفرة للاستيراد من مكون DishDetail الخاص بي.
لذلك، والعودة إلى مكون DishDetail.
الآن، في المكان الذي قمت باستيراد الزناد والفئات الأخرى،
سأقوم الآن باستيراد الرؤية
من تطبيق الرسوم المتحركة، والرسوم المتحركة،
وحتى تصبح هذه الوظيفة متاحة لي داخل شفرتي هنا.
لذا، بمجرد القيام بذلك داخل الرسوم المتحركة الخاصة بي،
يمكنني ببساطة استدعاء هذه الوظيفة حتى أتمكن من القول
الرؤية ثم يصبح رمز الزناد الآن جزءًا من مكونتي هنا.
الآن، هذا أجد طريقة أفضل لتنظيم رمز الرسوم المتحركة الخاصة بي.
الآن، إذا كنت بحاجة إلى استخدام نفس الزناد في مكون آخر،
يمكنني ببساطة اتباع هذا النهج لتضمين ذلك في مكوناتي الأخرى كذلك.
دعونا حفظ التغييرات ثم انتقل ونلقي
نظرة سريعة على التطبيق لدينا في المتصفح.
انتقل إلى المتصفح، ترى أنه عندما أذهب إلى مكون القرص، يكون
مكون القرص هناك حق ومن ثم
سيكون له نفس سلوك الرسوم المتحركة كما كان من قبل.
لذلك، من خلال إعادة بيع التعليمات البرمجية،
تمكنت من الحصول على رمز أفضل
تنظيما وما زالت تعمل بالضبط نفس الجزء الأول من هذا التمرين.
إذا كان لديك رسوم متحركة واحدة فقط تستخدم في مكان واحد،
فإن النهج السابق يعمل بشكل جيد ولكن إذا كان لديك
متعددة وخاصة إذا كنت تعيد استخدام الشفرة في العديد من المكونات،
فإن هذا النهج الذي تم إعادة صياغته هو طريقة أفضل بكثير لتنفيذ الحل.
التحديث التالي الذي سأقوم به هو إضافة رسوم متحركة على تغييرات المسار.
لذلك، عندما أذهب من وجهة نظر إلى وجهة نظر أخرى، لذلك، على سبيل المثال،
من المنزل إلى حول أو حول إلى القائمة أو القائمة للاتصال أو العكس،
ثم أريد أن تكون قادرة على تحريك هذه التغييرات داخل طلبي.
لذلك، للقيام بذلك،
وسوف أعرض وظيفة أخرى في ملف.ts الرسوم المتحركة التطبيق.
لذلك، والذهاب إلى ملف الرسوم المتحركة التطبيق،
وسوف تصدير وظيفة أخرى التي أسميها كما FlyInout،
سترى لماذا يمكنني استخدام هذا الاسم هنا.
ثم هذا من شأنه أن يعود وظيفة التي هي الزناد مع اسم FlyInout.
لذلك، داخل كان الزناد،
وأنا ذاهب لتحديد رمز لما هذا الزناد سوف تفعل.
لذا، هنا، سأحدد حالة هنا بنجم الاسم،
لذلك لا يهم ما هي الحالة،
وهذا ينطبق على أي حالة، وبعد ذلك سأحدد
بعض الأنماط هنا والنمطين اللذين سأعرفهما هما هما
هو التعتيم واحد
والتحويل هو TranslaTeX (0)،
مما يعني أن فهو في و ضعه الطبيعي في هذه الحالة.
الآن، عندما أقوم بتعريف التحولات،
يمكنني أيضًا تحديد التحولات بهذه الطريقة.
لذا، إذا قلت أدخل الانتقال،
فإن الانتقال إلى الدخول هو اختزال لقول الانتقال من
حالة فارغة إلى واحدة من الدولة القائمة.
لذلك، مما يعني أن وجهة النظر تأتي في طلبي.
لذلك أدخل، وهذا يعني أنه الآن عندما أتوجه إلى
طريقة عرض معينة في تطبيق الصفحة الواحدة الخاص بي،
سيتم إدخال هذا العرض في العرض.
لذلك، هذا هو السبب في أنني يمكن تطبيق القولون دخول الانتقال في هذه الحالة.
الآن وبالمثل، هناك انتقال آخر يسمى
إجازة القولون التي يمكنني تطبيقها عند الانتقال من
هذا العرض ومن ثم كنت تأخذ وجهة النظر من منفذ جهاز التوجيه من التطبيق الخاص بك.
لذلك، نحن ذاهبون للقيام على حد سواء دخول والآخر الذي هو ترك.
لذا، وظيفتان سأقوم بتعريفهما هنا،
الانتقال يدخل ويغادر الانتقال هنا.
لذا، بالنسبة للإدخال،
ما الذي أريد تعريفه؟
للدخول، اسمحوا لي أن تحديد وظيفة في هنا
، وبالمثل، للإجازة أيضا،
وأنا ذاهب لتحديد وظائف في هنا.
لذلك، خلق هذه السقالات هنا.
الآن، يمكنني إدخال المعلومات التي أريدها ضمن هذه التحولات.
لذلك، عندما يحدث هذا الانتقال،
وسوف تبدأ مع نمط من التحول،
ترانسلاتكس ناقص 100 في المئة،
مما يعني أن وجهة النظر هي تماما من وجهة نظر هنا.
لذلك، تبدأ من هناك من ناقص 100 في المئة في هذه اللحظة.
لذلك، عندما تدخل،
سوف تبدأ مع ذلك،
وبعد ذلك أيضا في هذه المرحلة،
وسوف تتحرك، وتحريك في 500.
لذلك، عندما أحدد 500 مثل هذا،
يمكنك حتى القيام بذلك بهذه الطريقة.
بالتناوب، يمكنك أن تقول، ضمن علامات الاقتباس،
«500ms»، ومن ثم يمكنك حتى استخدام سهولة في أو سهولة الخروج.
لذلك، اسمحوا لي تعديل هذا إلى
500ms سهلة في لأن هذا الرأي يأتي في.
لذلك، سوف نهدأ في الرأي.
لذا، للإجازة، سأطبق الانتقال كحركة،
وبعد ذلك سأقول 500 ميلي ثانية، مرة أخرى، سهل المغادرة.
لذلك، هذا الرأي هو ترك.
لذلك، نحن نريد أن نخفف من هذا الرأي.
ثم، في هذه الحالة،
النمط الذي أطبقه
هو
تحويل، ترانسلاتكس 100 في المئة.
لذلك، فإن هذا الرأي تختفي تماما من الشاشة هناك.
ترانسلاتكس 100 في المئة.
أيضا، سوف أقوم بتعيين التعتيم إلى الصفر.
لذلك، يختفي تماما من الشاشة.
لذا، ستضيف هذه الرسوم المتحركة ميزة جديدة جيدة هنا.
الآن، لهذا واحد أيضا،
يمكنني أن أضيف في، بدءا من عتامة الصفر، إذا كنت تفضل.
دعونا نضيف ذلك ونرى كيف يبدو.
لذا، هذا هو الزناد FlyInout الذي حددته هنا.
الآن، من الواضح أنك تتساءل،
كيف يمكنني الاستفادة من هذا FlyInout ومن ثم تطبيق
هذا لتوجيه التحولات في طلبي؟
لذلك، للقيام بذلك، سوف نذهب إلى، أولا،
بدءا من القائمة component.ts ملف.
أنا ذاهب لاستيراد
FlyInout
من الرسوم المتحركة التطبيق.
ثم، الذهاب إلى المكون،
وأنا الآن ذاهب لتقديم خاصية جديدة تسمى كمضيف.
سأخبركم بما سيذهب إلى المضيف في فترة قصيرة
بعد ذلك، سنقوم أيضًا بتضمين خاصية الرسوم المتحركة،
وهي عبارة عن مصفوفة هنا.
ثم، في الداخل هنا، سأستخدم FlyInout الذي قمنا باستيراده للتو.
لذلك، سيتم تطبيق هذا المشغل الرسوم المتحركة لهذا المكون وسائل الإعلام.
الآن، داخل المضيف،
لذلك هذه هي الطريقة التي أتأكد من أن هذه الرسوم المتحركة معينة تحدث عند حدوث تغييرات المسار.
لذلك، داخل هذا المضيف هنا،
أنا توريد هذا كما يقول،
@flyInOut ويقول صحيح،
وهذا يجب أن تكون محاطة في علامات الاقتباس أيضا،
@flyInOut، true، ثم نمط،
كتلة العرض.
لذلك، يجب تطبيق هذين داخل الخاصية المضيفة هنا.
الآن، عندما نفعل ذلك، سيبدأ مكون القائمة الخاص بي الآن في الحركة
عندما أتوجه إلى مكون القائمة،
ثم أيضًا عندما أترك مكون القائمة.
الآن، سأطبق نفس الشيء على المكونات المتبقية من تطبيق Angular الخاص بي.
لذلك، ما
سأفعله هو، أنا فقط نسخ هذا،
وبعد ذلك سنقوم بتطبيق هذا على المكون حول.
لذلك، سأذهب إلى المكون حول.
داخل ديكور المكون،
لقد قمت بتضمين المعلومات هنا،
وترى الخط الأحمر المتعرج الذي يذكرني بأنني بحاجة إلى استيراد
FlyInout من الرسوم المتحركة، والرسوم المتحركة التطبيق.
لذا، فإن نفس النهج، حول المكون،
ثم داخل مكون الاتصال أيضًا، نفس الشيء،
ثم قم بتطبيق خصائص المضيف والرسوم المتحركة على مصمم المكون،
ثم ماذا لدينا؟
المكون المنزلي دعونا نذهب إلى مكون المنزل ونكرر نفس الشيء هنا.
سأضيف في المضيف والملكية الرسوم المتحركة،
ومن ثم المضي قدما واستيراد
FlyInout، من الرسوم المتحركة التطبيق.
هل فاتنا أي شيء؟ أوه، نحن بحاجة أيضا لتحديث عنصر تفاصيل الطبق.
لذلك، اسمحوا لي أن أذهب إلى عنصر تفاصيل الطبق.
نظرًا لأن لدينا بالفعل الرؤية هناك،
فأنا سأقوم باستيراد FlyInout.
ثم، بما أننا قمنا بالفعل بإعداد الأجزاء المتبقية هنا،
سأدخل وألصق هذا الرمز،
ومن الواضح أن لدي اثنين من الرسوم المتحركة هنا.
اسمحوا لي أن قطع الرؤية من هنا ومن ثم إضافتها
إلى الرسوم المتحركة الأخرى،
ومن ثم قطع هذا خارج بحيث يكون لدي خاصية الرسوم المتحركة واحدة مع
كل من فلاينوت وظائف الرؤية التي يتم تضمينها واستدعاؤها هناك،
ومن ثم الخاصية المضيف.
الآن، دعونا حفظ التغييرات ومن ثم نلقي نظرة على
الرسوم المتحركة الجديدة التي قمنا بتطبيقها للتو على مكوناتنا.
بدءا من وجهة نظر المنزل.
لذلك، لدينا وجهة نظر المنزل يجري تقديمها هنا.
اسمحوا لي الآن أن انتقل بسرعة إلى طريقة العرض حول،
ومن ثم ترى أن عرض حول الشرائح فقط
في أثناء عرض الصفحة الرئيسية إلى الشاشة هنا.
وبالمثل، عندما أذهب إلى القائمة،
سترى أن عرض القائمة الشرائح في أثناء عرض حول الشرائح.
انها سريعة جدا بحيث كنت لا تلاحظ ذلك على هذا النحو.
وبالمثل، بالنسبة لطريقة عرض جهة الاتصال،
تشاهد عرض جهة الاتصال انزلاق في.
لذلك، يمكن إضافة هذا النوع من الرسوم المتحركة باستخدام
هذا الأسلوب الذي قمنا بتوضيحه فقط لتطبيق Angular الخاص بك.
لم ننتهي بعد سنقوم بعمل واحد أكثر من الرسوم المتحركة داخل تطبيقنا.
لتوضيح ما أود القيام به في الرسوم المتحركة التالية،
دعونا نلقي ساعة سريعة على مكون القائمة.
لذلك، ترى أنه عندما عنصر القائمة،
عندما الدوار هو الغزل ومن ثم يحصل على استبدال من قبل العرض،
وجهة نظر يظهر فجأة على الشاشة،
وأنه هو قليلا متعرج للعين.
قد لا تلاحظ ذلك.
قد تكون سعيداً جداً بذلك
ولكن يمكننا أن نضيف بطريقة تخفيف في
هذا الرأي عندما يتم جلب البيانات من الخادم ويتم عرض العرض في.
لذلك، عندما يصبح متغير الطبق في ملف component.ts القائمة الخاصة بي لا باطل،
ثم سيتم إخفاء الدوار ومن ثم عرض الطبق،
يتم إنشاء القائمة ثم وضعت.
لذلك، نريد أن يخفف ذلك في الشاشة.
لذلك، دعونا نضيف في واحد أكثر الرسوم المتحركة للتأثير على حد سواء في مكون القائمة.
سنقوم أيضًا بتطبيق نفس الشيء في مكون تفاصيل الطبق.
سنستخدم أيضًا نفس الشيء في مكون الصفحة الرئيسية أيضًا ومكون
About، حيث نجلب البيانات لإظهار قائمة القادة.
لذا، أينما كنت تجلب البيانات من الخادم ثم وضع العرض،
عندما يظهر العرض،
نريد تخفيف العرض باستخدام هذه الرسوم المتحركة الجديدة التي سأقوم بإنشائها بعد ذلك.
الذهاب إلى ملف.ts الرسوم المتحركة التطبيق،
وأنا ذاهب لإضافة في وظيفة أخرى هنا،
واسمحوا لي أن نسميها توسيع.
ستقوم هذه الوظيفة بتوسيع طريقة العرض التي
يتم وضعها بعد جلب البيانات من جانب الخادم.
لذلك، هذا الرأي، مرة أخرى،
سأعيد الزناد هنا.
سأسمي الزناد على أنه توسيع،
وهذا الزناد سيخلق.
كيف يمكننا تعريف هذا الزناد.
لذلك، داخل هذا الزناد نحن ذاهبون إلى تضمين ولاية مع نجمة في هناك.
لذلك، لا يهم ما هي الدولة.
سيتم تقديم جميع الدول مع نمط كما
عتامة تحويل واحد ترجمة x 0.
لذلك، يتم عرضه الحق والمركز في طلبي.
هذا يجب أن يكون هدفاً هناك
كنت أبحث في ذلك وقال,
لماذا يظهر خط متعرج أحمر.
لذلك، عندما كنت تكتب بسرعة كبيرة غالبا ما ترتكب أخطاء هناك.
لذلك، بدلا من قوس مربع،
يجب أن يكون هدفين هناك.
إذن، هذه هي الولاية
لذلك، أي دولة أنها سوف تكون مرئية تماما وتتركز حيث ينبغي أن تركز.
الآن، اسمحوا لي أن أشعل عملية انتقال.
الآن، سيتم تشغيل هذا الانتقال فقط
عند الدخول عندما يتم وضع العرض على الشاشة.
جزء الخروج الذي نقوم به بالفعل في مسار الرسوم المتحركة، لذلك نحن لسنا بحاجة إلى ذلك.
نحن بحاجة فقط إلى الجزء الداخلي لهذا العرض لأن
العرض يتم عرضه على هذه الشاشة هناك.
لذا، في الإدخال،
سأقوم بتعريف الانتقال بشكل مناسب.
لذلك، في المرحلة الانتقالية ماذا أريد أن أفعل؟
أريد تطبيق نفس النهج الذي استخدمته مع الانتقال إلى الإدخال هنا.
لذلك، أنا فقط ذاهب لنسخ هذا ومن ثم إجراء بعض التعديلات الطفيفة على التعليمات البرمجية هناك.
لذلك، لدخول الانتقال هنا أيضا،
أريد أن تطبيق نفس الشيء.
سأقول ترجمة إنستا من 100 في المئة.
أنا ذاهب فقط لاستخدام 50 في المئة وبعد ذلك سوف تفعل ترجمة Y.
لذلك، مما يعني أن هذا الرأي سوف تنخفض من أعلى 50 بريسنت بدءا من
العتامة الصفر وبعد ذلك سوف تخفيف ذلك في وقت أسرع قليلا،
200 ميلي ثانية وسوف تخفف من ذلك في التطبيق لدينا.
الآن، لذلك، ترى التعديل الطفيف للشفرة هنا.
لذلك، ترجمة ناقص 50 في المئة والعتامة صفر
ويتم تخفيفه في 200 ميلي ثانية وبعد ذلك في هذه المرحلة،
يمكنني تطبيق هذا النمط على نفس النمط.
أنا سَأَتقدّمَ هناك. لذلك، سأقوم فقط بنسخ هذا النمط ثم تطبيق هذا النمط هناك.
لذلك، عندما يتم
تخفيفه، وسوف يأتي في وتكون مرئية تماما حيث ينبغي أن يكون.
لذلك، هذه هي وظيفة التوسع التي قمت بتعريفها هنا.
لذا، أين أريد الاستفادة من هذه الوظيفة؟
سوف نذهب أولا إلى مكون القائمة وداخل مكون القائمة،
وسوف الآن أيضا استيراد ذلك،
وتوسيع ومن ثم إضافته في الرسوم المتحركة بلدي وبعد ذلك كيف يمكنني تطبيق هذا التوسع؟
لذلك، انتقل إلى ملف قالب مكونات القائمة.
في ملف القالب،
سأقوم بتطبيق التوسيع
على قائمة الشبكة حيث أقوم بتطبيق هذا.
لذلك، اسمحوا لي أن نسخ ذلك وبعد ذلك أيضا سوف نذهب
إلى المكون الرئيسي وداخل المكون الرئيسي أيضا،
وأنا ذاهب لتشمل توسيع ومن ثم إضافة توسيع إلى الرسوم المتحركة،
ومن ثم انتقل إلى ملف قالب مكونات المنزل وبعد ذلك سوف تطبيق
أن توسيع إلى مكونات الطبق MD بطاقة,
لمكونات الترويج بطاقة MD وأيضا
لمكونات زعيم بطاقة MD هنا لأنه
سيتم جلب كل هذه الثلاثة في المستقبل من الخادم ومن ثم تقديمها.
لذلك، يتم بالفعل جلب بيانات مكونات الطبق من الخادم.
الآن، نفس الشيء الذهاب إلى مكون DishDetail.
أنا ذاهب لإضافة في التوسع إلى الواردات ومن ثم إضافة
توسيع في الرسوم المتحركة الذهاب إلى عرض مكون ديشديتايل ل.
جنبا إلى جنب مع الرؤية،
وسوف تطبيق أيضا توسيع
إلى ديف بطاقة هناك ومن ثم إلى ديف التعليقات أيضا هنا.
هذا في مكون DishDetail.
لا يحتوي مكون جهة الاتصال على أي شيء يتم جلبه من الخادم.
لذلك، سأذهب فقط إلى المكون حول وفي المكون حول أيضًا،
سوف أقوم بتضمين التوسع وكذلك في الرسوم المتحركة.
الذهاب إلى ملف قالب المكونات هنا هذا الاختبار
هنا الذي يظهر يتم جلب القادة من جانب الخادم.
لذلك، أنا ذاهب لتطبيق التوسع على هذا.
دعونا حفظ التغييرات ثم نذهب ونلقي
نظرة على التطبيق الزاوي لدينا في المتصفح.
الذهاب إلى تطبيقنا الزاوي.
الآن، عندما تذهب إلى قالب المنزل،
يمكنك أن ترى أن البطاقات عندما تم جلبها،
انزلقت في وجهة نظري هناك.
الآن، وبالمثل عندما تذهب إلى المكون حول،
ترى أنه بمجرد جلب البيانات من الخادم،
ثم يتم
تمرير تقديم مختلف القادة في أي وقت مضى ببطء شديد في موقف في هذا الرأي هنا.
وبالمثل، والذهاب إلى مكون القائمة،
وسوف نرى نفس السلوك هنا.
لذلك، بمجرد أن تكون بيانات القائمة جاهزة،
ينزلق مكون القائمة في مكانه هناك.
نفس الشيء مع مكونات تفاصيل الطبق.
لذا، دعني أذهب إلى مكون DishDetail وسترى أن
العرض ينزلق إلى مكانه هناك ولكن
الرسوم المتحركة الأخرى التي كانت
تختفي وتظهر هذا الجزء لا تزال تعمل تمامًا كما كان من قبل.
لذا، ترى أننا قدمنا رسوم متحركة أخرى في تطبيقنا الزاوي.
الآن، سواء كنت تحب هذا أو كنت تريد أن تفعل طريقة أكثر تفصيلا للقيام الرسوم المتحركة،
بالتأكيد، يمكنك أن تذهب مجنون مع
القيام العديد من أنواع مختلفة من الأشياء مع الرسوم المتحركة الخاصة بك.
تغيير العديد من الخصائص المختلفة داخل الأنماط بالطريقة التي تريدها وما إلى ذلك.
ولكن شعرت أن بعض الرسوم المتحركة خفية هنا وهناك سوف
تساعد على تعزيز واجهة المستخدم لتطبيق الزاوي الخاص بي.
لذلك، لقد أضفت في اثنين من الرسوم المتحركة الجديدة إلى بلدي التطبيق الزاوي.
مع هذا، ونحن استكمال الجزء الثاني من ممارسة الرسوم المتحركة لدينا.
آمل أنه مع هذين الجزأين التمرين،
كنت قد فهمت بشكل أفضل حول كيفية الاستفادة من
الرسوم المتحركة داخل تطبيق Angular الخاص بك.
هذا هو الوقت المناسب بالنسبة لك للقيام جيت الالتزام مع الرسالة، والرسوم المتحركة الجزء الثاني.