10 حيل jQuery يجب أن يعرفها كل مصمم


محمد أحمد العيل

تعد مكتبة jQuery واحدة من أكثر المكتبات استخداما للإضافة على الصفحات؛ إذ أنها تجعل من التعامل مع نموذج كائن المستند Document object model, DOM أمرا في منتهى اليسر.

jquery.thumb.png.5f31b5ae0d0b23e83019cc6

لا شك أن السهولة في التعامل سبب أساسي في شعبية jQuery، إذ يبدو بالإمكان فعل أي شيء نريده عن طريق هذه المكتبة.

توجد، من بين الخيارات المتاحة أمامنا، مقاطع Snippets تجنح إلى الظهور المرة تلو الأخرى. سنعرِض في هذا المقال إلى عشرة مقاطِع سيستخدمها الجميع، من المبتدئ إلى المتمكن، مرارا وتكرارا.

زر العودة إلى الأعلى

// عد إلى الأعلى
$('a.top').click(function(){
  $(document.body).animate({scrollTop : 0}, 800);
  return false;
});

// Anchor tag أنشئ وسما للمربط
<a class="top" href="#">عد إلى الأعلى</a>

يتضح أننا لا نحتاج إلى إضافة Plugin لـ jQuery من أجل الحصول على تحريك سهل إلى الأعلى؛ يكفي استخدام دالتي animate و scrollTop.

يمكن تغيير المكان الذي يحُط فيه شريط التمرير عبر تغيير قيمة scrollTop. في المثال أعلاه استخدمنا القيمة 0 لأننا نريد العودة إلى أعلى الصفحة، لكن لو أردنا زَيحانًا offset بقيمة 100px فيمكن إدراج هذه القيمة.

يتلخص ما فعلناه في تحريك جسم المستند Document body طوال 800 ملي ثانيّة حتى يصل إلى القمّة.

التحقق من تحميل الصور

$('img').load(function() {
  console.log('image load successful');
});

تحتاج أحيانا إلى التأكد من تحميل كل الصور قبل إكمال السكربت؛ تؤدي الأسطر الثلاثة أعلاه هذه المهمة بكل يُسر. يمكن أيضا التحقق من تحميل صورة معينة عبر إبدال وسم tag بمعرِّف ID أو صنف Class.

تصحيح الصور المعطوبة تلقائيا

$('img').error(function(){
  $(this).attr('src', 'img/broken.png');
});

تحصل أحيانا أعطاب في روابط الصور على الموقع يكون معها إبدال الروابط يدويا أمرا صعبا. يعمل المقطع أعلاه على إبدال الصور المعطوبة تلقائيا مما ينقِذ من الكثير من المشاكل.

تبديل الصنف عند الحومان Hover

$('.btn').hover(function(){
  $(this).addClass('hover');
}, function(){
  $(this).removeClass('hover');
}
);

نرغب عادة في تغيير مظهر العناصر القابلة للنقر في صفحة الويب عندما يحوم حولها المؤشر وهو بالضبط ما تفعله الأسطر في المقطع أعلاه؛ فتضيف صنفا للعنصر عند الحوم حوله ثم تزيل الصنف عندما يكُفّ المستخدِم. كل ما عليك فعله هو إضافة التنسيق المرغوب ضمن ملف CSS.

تعطيل حقول الإدخال

$('input[type="submit"]').attr("disabled", true);

قد تريد تعطيل زر الإرسال أو حقل إدخال إلى أن يؤدي المستخدم إجراء معينا (التأشير على صندوق “قرأتُ الشروط”، مثلا). يضيف المقطع خاصية disabled (مُعطَّل) إلى الحقل مما يتيح لك تفعيله عندما تريد. كل ما عليك فعله لتفعيل الحقل هو تنفيذ الدالة removeAttr مع تمرير المُعطى disabled على النحو التالي:

$('input[type="submit"]').removeAttr("disabled");

إيقاف تحميل الروابط

$('a.no-link').click(function(e){
  e.preventDefault();
});

قد نود أن تؤدي الروابط أعمالا أخرى غير الانتقال إلى صفحة أو حتى إعادة تحميلها، وهو ما تعمل عليه الأسطر أعلاه عبر تعطيل الإجراء الافتراضي Default action. قد يكون السبب - على سبيل المثال - تنشيطَ سكربت آخر.

التبديل بين تأثيريْ التلاشي Fade والانزلاق Slide

// تلاش

$(".btn").click(function() {
  $(".element").fadeToggle("slow");
});

// تبديل
$(".btn").click(function() {
  $(".element").slideToggle("slow");
});

تأثيرا التّلاشي والانزلاق من أكثر التّأثيرات في jQuery استخداما. عندما نريد فقط عرض عنصر عند النقر فإن دالتي fadeIn وslideDown ملائمتان تماما. لكن إن أردنا أن يظهر العنصر بعد النقرة الأولى ثم يختفي بعد الثانية فهذا المقطع يؤدي المهمة بنجاح.

تأثير الطّيّ

// أغلق كل اللوحات
$('#accordion').find(‘.content').hide();
// تأثير الطّيّ
$('#accordion').find('.accordion-header').click(function(){
  var next = $(this).next();
  next.slideToggle('fast');
  $('.content').not(next).slideUp('fast');
  return false;
});

كل ما تحتاجه إلى جانب هذا المقطع هو شفرة HTML المناسبة للتأثير. أولا نغلق كل اللوحات ثم عند حدث النقر click ينزلق المحتوى المربوط بالترويسة accordion-header بالتتابع. هذه طريقة سهلة للحصول على تأثير طي بسرعة.

تحديد ارتفاع عنصر div اعتمادا على آخر

$('.div').css('min-height', $('.main-div').height());

تمكِّن هذه الطريقة من تحديد نفس الارتفاع لعنصريْ div بغض النظر عن محتوى كل منهما. في السطر أعلاه عيّنا ارتفاع عناصر div بحيث يكون لديها على الأقل ارتفاع العنصر main-div.

لائحة بألوان مختلفة حسب العناصِر الزوجية والفردية

$('li:odd').css('background', '#E8E8E8');

يمنح هذا السطر خلفية باللون المحدد للعناصر الفردية من اللائحة؛ مما يمكنك من الحصول على لائحة مخطَّطة - مثل هيئة الحمار الوحشي - عبر إضافة لون خلفية افتراضي في ملف CSS تأخذه العناصر الزوجية من اللائحة. لا يقتصر استخدام هذه الطريقة على اللوائح بل يتعداها إلى الجداول وعناصر div وغيرها.

ترجمة بتصرّف لمقال 10 jQuery snippets every designer should know لصاحبته Sara Vieira.



5 اشخاص أعجبوا بهذا


تفاعل الأعضاء


مبدع سلمت يداك

شارك هذا التعليق


رابط هذا التعليق
شارك على الشبكات الإجتماعية

رائع

لكن أول كود (الإنزلاق لأعلي) لا يعمل علي فير فوكس بينما يعمل علي كروم بكفاءة

شارك هذا التعليق


رابط هذا التعليق
شارك على الشبكات الإجتماعية


يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن