إضافة تأثيرات الحركة animation ضمن الموقع

html
css
frontend
javascript

#1

جميعنا قد شاهد تاثيرات ظهور نص او صورة من أماكن مختلفة من الشاشة كظهورها مثلا من يمين الشاشة أو حتى يسارها، فهل تسالت عن إمكانية تطبيق ذلك على مشاريعك؟
سوف نتحدث عن إمكانية إنشاء هذه التأثيرات وكيف يمكن تجنب اهم المشاكل التي قد تحدث.

هناك مكتبة جاهزة تدعى animation.css بإمكانك تحميلها من خلال الرابط التالي اضغط هنا
بعد تحميلها قم بفك ضغط الملف وقم بنسخ ملف animate.min.css وضعه ضمن مجلد css الخاص بمشروعك
PP01

قم بربط ملف animate.min.css مع ملف HTML الخاص بمشروعك
PP02

سوف نقوم بإنشاء مربعين ضمن HTML

<section class="section01">
    <div class="box">Box 01</div>
    <div class="box">Box 02</div>
</section>

وضمن ملف css نكتب مايلي:

.box {
    display: -webkit-inline-box;
    background-color: tomato;
    font-size: 25px;
    padding: 100px;
    margin: 20px;
}

والأن سوف نقوم بإضافة الحركة للمربعين ولتكن على سبيل المثال ظهور المربعين من الأعلى.
سوف نضيف كلاس animation لكلاس box وسوف نضيف أيضا إسم الحركة ولتكن slideInDown ليصبح ملف HTML كتالي:

<section class="section01">
    <div class="box animated slideInDown">Box 01</div>
    <div class="box animated slideInDown">Box 02</div>
</section>

هذا جدول يوضح أسماء جميع الحركات التي يمكنك أستخدامها أضغط هنا وإذا أردت مشاهدت التأثيرات كل ما عليك هو زيارة الموقع التالي animate.css وإختيار التأثير المناسب ومن ثم تطبيقه على مشروعك.

بإمكاننا إضافة كلاس أخر وهو delay-2s ومهمته تأخير الحركى بمقدار 2 ثانية ليصبح ملف HTML كتالي:

<section class="section01">
    <div class="box animated slideInDown delay-2s">Box 01</div>
    <div class="box animated slideInDown delay-4s">Box 02</div>
</section>

أهم المشاكل التي قد تحدث:
لنقم بإنشاء قسم أخر ومربعين أخرين ضمن ملف HTML كما يلي:

<section class="section01">
    <div class="box animated slideInDown delay-2s">Box 01</div>
    <div class="box animated slideInDown delay-4s">Box 02</div>
</section>
<section class="section02">
    <div class="box2 animated slideInLeft">Box 03</div>
    <div class="box2 animated slideInRight">Box 04</div>
</section>

ونقوم بإنشاء مسافة 800px بين القسمين الأول والثاني من خلال ملف css:

.box {
    display: -webkit-inline-box;
    background-color: tomato;
    font-size: 25px;
    padding: 100px;
    margin: 20px;
}
.box2 {
    display: -webkit-inline-box;
    background-color: tomato;
    font-size: 25px;
    padding: 100px;
    margin: 20px;
}
.section01 {
    margin-bottom: 800px;
}

سوف يصبح المربع الثالث والرابع غير ضاهرين ضمن الشاشة وذلك بسبب المسافة بين القسمين وبهذا لن تتمكن من مشاهدة تأثير الحركة على المربعين لان تأثير الحركة يتم تفعيله عند تحميل الصفحة ولهذا نحن بحاجة لطريقة ما لإيقاف جميع التأثيرات الغير ظاهرة على الشاشة وتفعيل التأثيرات عند ظهور المربعات على الشاشة.

ملف wow.js
مهمت هذا الملف إيقاف جميع التأثيرات الغير ضاهرة على الشاشة بإمكانك مشاهدة المثال التالي أضغط هنا

سوف نقوم بتحميل الملف من خلال الرابط التالي
بعد تحميلها قم بفك ضغط الملف وتوجه للمسار التالي:
WOW-master > dist سوف تجد ملف بإسم wow.min.js قم بنسخه وضعه ضمن ملفات js الخاصة بمشروعك وسوف نقوم بربط هذا الملف مع ملف HTML بالطريقة التالية:

<!-- wow js File -->
<script type="text/javascript" src="js/wow.min.js"></script>
<script>
    new WOW().init();
</script>

بعد الإنتهاء من ربط الملف نقوم بإضافة الكلاس wow لجميع كلاسات المربعات ليصبح ملف HTML كتالي:

<section class="section01">
    <div class="box wow animated slideInDown delay-2s">Box 01</div>
    <div class="box wow animated slideInDown delay-4s">Box 02</div>
</section>
<section class="section02">
    <div class="box2 wow animated slideInLeft">Box 03</div>
    <div class="box2 wow animated slideInRight">Box 04</div>
</section>

وهكذا سوف تظهر حركة المربعين الثالث والرابع فقط عندما تصل للقسم الخاص بهم

:point_left::point_left::point_left::point_left: لتحميل العمل كاملا :point_right::point_right::point_right::point_right:
:arrow_left::arrow_left::arrow_left::arrow_left::arrow_left: إضغط هنا :arrow_right::arrow_right::arrow_right::arrow_right::arrow_right:


#2

جميل جدا :clap:t2:


#3

مجهود ممتاز @N_Kardan
تتحفنا كالعادة :ok_hand::heart:


#4

جميل جداً إضافة مثل هذا النوع من التفاعل في الصفحات يجعلها رهيبة، غير مملة وتجذب الإنتباة ولكن بشرط عدم المبالغة في إستخدامها :smiley: بحيث تصبح مزعجة للمستخدم.

شكراً لمشاركتنا هذا الدرس الرائع :star_struck::muscle:


#5

فعلا استاذ الحكيم تعتبر من اجمل الإضافات كما ان اغلب المواقع يستخدم هذا النوع من التأثيرات ويجب الأنتباه لعدم المبالغة في إستخدامها.

نحن تلاميذك استاذنا :+1:


#6

شرح راااائع صديقي احسنت .

:heart::heart: