jQuery Academy · درس

تأثيرات التبديل والانزلاق المتقدّمة

أتقن الاستخدامات المتقدّمة لـ .slideToggle() و.fadeToggle() و.animate() لإنشاء تأثيرات سلسة ومتجاوبة وجذابة لعرض العناصر وإخفائها والانتقال بينها.

الدرس 3 من 311 خطوة

تأثيرات التبديل والانزلاق المتقدّمة درس مجاني في jQuery Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في jQuery Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة jQuery Academy 3 دروس في المجموع.

مرحبًا بكم في التبديلات المتقدمة!

سنتعمق في هذا الدرس في أساليب jQuery القوية لإنشاء تأثيرات ديناميكية للإظهار والإخفاء. وستتقنون .slideToggle() و.fadeToggle()، بالإضافة إلى كيفية استخدام .animate() لإنشاء انتقالات مخصصة.

تُعد هذه التقنيات أساسية لبناء واجهات مستخدم تفاعلية وجذابة بصريًا.

تحريك العناصر باستخدام slideToggle()

تحرّك الدالة .slideToggle() ارتفاع العناصر المطابقة، مما يجعلها تنزلق إلى أعلى أو أسفل. فإذا كان العنصر ظاهرًا، فإنه ينزلق إلى أعلى لإخفائه. وإذا كان مخفيًا، فإنه ينزلق إلى أسفل لإظهاره.

وهي مناسبة تمامًا للقوائم القابلة للطي أو أقسام المحتوى القابلة للتوسيع. جرّبوا تشغيل هذا المثال:

// HTML for context:
// <button id="toggleButton">Toggle Panel</button>
// <div id="myPanel" style="background-color: lightblue; padding: 10px;">
//   <p>This is a sliding panel!</p>
// </div>

$(document).ready(function() {
  $("#toggleButton").click(function() {
    $("#myPanel").slideToggle();
  });
});

تخصيص slideToggle()

يمكنكم التحكم في سرعة حركة .slideToggle() بتمرير مدة زمنية (بالملي ثانية أو 'slow' أو 'fast'). ويمكنكم أيضًا توفير دالة استدعاء لاحق لتشغيلها بعد اكتمال الحركة.

  • .slideToggle(duration)
  • .slideToggle(duration, callback)

جرّبوا تغيير السرعة في الشيفرة أدناه:

// HTML for context:
// <button id="speedToggleBtn">Toggle Fast</button>
// <p id="speedPanel" style="background-color: #e0ffe0; padding: 10px;">
//   I slide fast and then alert!
// </p>

$(document).ready(function() {
  $("#speedToggleBtn").click(function() {
    $("#speedPanel").slideToggle("fast", function() {
      alert("Animation finished!");
    });
  });
});

إظهار العناصر وإخفاؤها تدريجيًا باستخدام fadeToggle()

على غرار .slideToggle()، تعرض الدالة .fadeToggle() العناصر المطابقة أو تخفيها من خلال تحريك شفافيتها. فإذا كان العنصر ظاهرًا، يتلاشى تدريجيًا. وإذا كان مخفيًا، يظهر تدريجيًا.

ينشئ ذلك تأثير انتقال سلسًا وشفافًا. شاهدوه عمليًا:

// HTML for context:
// <button id="fadeToggleBtn">Toggle Fade</button>
// <div id="fadePanel" style="background-color: #ffe0e0; padding: 10px;">
//   <p>This panel fades in and out!</p>
// </div>

$(document).ready(function() {
  $("#fadeToggleBtn").click(function() {
    $("#fadePanel").fadeToggle();
  });
});

تخصيص fadeToggle()

كما هي الحال مع .slideToggle()، يمكنكم تخصيص السرعة وإضافة دالة استدعاء لاحق إلى .fadeToggle(). ويتيح لكم ذلك ربط الإجراءات أو تنفيذ المهام بعد اكتمال التلاشي.

  • .fadeToggle(duration)
  • .fadeToggle(duration, callback)

لاحظوا التلاشي البطيء وتغيّر اللون:

// HTML for context:
// <button id="customFadeBtn">Toggle Custom Fade</button>
// <p id="customFadePanel" style="background-color: #e0e0ff; padding: 10px;">
//   I fade slowly and change color!
// </p>

$(document).ready(function() {
  $("#customFadeBtn").click(function() {
    $("#customFadePanel").fadeToggle(1000, function() {
      $(this).css("color", "purple");
    });
  });
});

الدمج بين الانزلاق والتلاشي

يمكنكم دمج .slideToggle() و.fadeToggle() لإنشاء تأثيرات أكثر تعقيدًا. فعلى سبيل المثال، قد ترغبون في أن ينزلق العنصر إلى أسفل مع ظهوره تدريجيًا، أو العكس.

عند استدعائهما بالتتابع، يطبّق كل منهما تأثيره بعد الآخر. أما للحصول على تأثيرات متزامنة فعلية، فغالبًا ما يُفضّل استخدام .animate() (وسنراه بعد قليل!).

// HTML for context:
// <button id="mixedToggleBtn">Toggle Mixed</button>
// <div id="mixedPanel" style="background-color: #ffffe0; padding: 10px;">
//   <p>I will slide and fade!</p>
// </div>

$(document).ready(function() {
  $("#mixedToggleBtn").click(function() {
    $("#mixedPanel").slideToggle(500);
    $("#mixedPanel").fadeToggle(500);
  });
});

تبديل بسيط مع الحركة

هل تتذكرون الدالة الأساسية .toggle()؟ إنها تعرض العنصر أو تخفيه ببساطة. ومع ذلك، يمكنها أيضًا قبول وسيطَي المدة الزمنية ودالة الاستدعاء اللاحق، تمامًا مثل .slideToggle() و.fadeToggle().

عند استخدامها مع وسائط الحركة، تتحول .toggle() فعليًا إلى .fadeToggle() افتراضيًا.

// HTML for context:
// <button id="simpleToggleBtn">Toggle with Animation</button>
// <p id="simpleTogglePanel" style="background-color: #f0f0f0; padding: 10px;">
//   I toggle with a default fade effect.
// </p>

$(document).ready(function() {
  $("#simpleToggleBtn").click(function() {
    $("#simpleTogglePanel").toggle("slow", function() {
      console.log("Toggle animation done!");
    });
  });
});

إنشاء تأثيرات تبديل مخصصة

للحصول على أقصى قدر من التحكم، استخدموا الدالة .animate(). يمكنكم تحريك أي خاصية CSS تقريبًا إذا كانت قيمتها رقمية. ولإنشاء تأثيرات تبديل مخصصة، يمكنكم تحريك خصائص مثل height أو opacity أو حتى left/top.

يكمن المفتاح في التحريك إلى قيمة محددة، أو استخدام الكلمة المفتاحية الخاصة 'toggle' مع خصائص مثل height أو width.

// HTML for context:
// <button id="customAnimateBtn">Custom Animate Toggle</button>
// <div id="customAnimatePanel" style="background-color: lightgreen; padding: 10px; height: 100px; overflow: hidden;">
//   <p>I animate my height to toggle!</p>
// </div>

$(document).ready(function() {
  $("#customAnimateBtn").click(function() {
    $("#customAnimatePanel").animate({
      height: 'toggle' // Animates height to 'toggle' (show/hide)
    }, 500);
  });
});

حركات مخصصة متزامنة

تتألق الدالة .animate() حقًا عندما تحتاجون إلى تغيير عدة خصائص CSS في الوقت نفسه لإنشاء تأثير تبديل مركب. يمكنكم تحريك height وopacity بالتزامن للحصول على تأثير الانزلاق والتلاشي.

تذكروا معالجة الخاصية display إذا أردتم أن يختفي العنصر تمامًا من التخطيط بعد تحريك شفافيتها إلى 0.

// HTML for context:
// <button id="combinedAnimateBtn">Combined Toggle</button>
// <div id="combinedAnimatePanel" style="background-color: lightcoral; padding: 10px; height: 100px; opacity: 1; overflow: hidden;">
//   <p>I slide AND fade!</p>
// </div>

$(document).ready(function() {
  $("#combinedAnimateBtn").click(function() {
    var panel = $("#combinedAnimatePanel");
    if (panel.is(":visible")) {
      panel.animate({
        height: '0px',
        opacity: '0'
      }, 500, function() {
        $(this).hide(); // Ensure display: none after animation
      });
    } else {
      panel.show().animate({ // Show first, then animate
        height: '100px',
        opacity: '1'
      }, 500);
    }
  });
});

اختبروا معرفتكم بالتبديلات

أي من أساليب jQuery التالية يمكن استخدامه لإنشاء تأثير متحرك لإظهار عنصر أو إخفائه؟

ملخص التبديل والتحريك

أحسنتم! لقد أتقنتم تقنيات jQuery المتقدمة لإنشاء تأثيرات ديناميكية للإظهار والإخفاء.

  • استكشفنا .slideToggle() للانزلاق العمودي.
  • استخدمنا .fadeToggle() لإنشاء انتقالات سلسة في الشفافية.
  • رأينا كيف يمكن للدالة .toggle() أن تنفذ حركة أيضًا.
  • والأهم من ذلك، تعلمتم استخدام .animate() لإنشاء تأثيرات تبديل مخصصة ومركبة بالكامل، مما يوفر تحكمًا دقيقًا في عدة خصائص CSS.

واصلوا التدريب لبناء واجهات مستخدم تفاعلية مذهلة!

البدء مجانًا

تعلم JavaScript مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
22
الدروس
48

الأسئلة الشائعة

هل درس «تأثيرات التبديل والانزلاق المتقدّمة» مجاني؟

نعم — نص درس «تأثيرات التبديل والانزلاق المتقدّمة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة jQuery Academy، انتقل إلى CoddyKit PRO. تتضمن دورة jQuery Academy 3 دروس في المجموع.

ماذا ستتعلم في «تأثيرات التبديل والانزلاق المتقدّمة»؟

أتقن الاستخدامات المتقدّمة لـ .slideToggle() و.fadeToggle() و.animate() لإنشاء تأثيرات سلسة ومتجاوبة وجذابة لعرض العناصر وإخفائها والانتقال بينها. تتمرن على jQuery Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ jQuery Academy؟

لا تُشترط خبرة سابقة. jQuery Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.

كم من الوقت يستغرق درس «تأثيرات التبديل والانزلاق المتقدّمة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس jQuery Academy هذا؟

نعم. كل درس في jQuery Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تسلسل الرسوم المتحركة ووضعها في قائمة انتظار
  2. دوال التسهيل المخصّصة واستدعاءات الرسوم المتحركة
  3. تأثيرات التبديل والانزلاق المتقدّمة
← العودة إلى jQuery Academy