سؤال

أنا أستخدم تقنية Slidetoggle لإظهار وإخفاء 100+ divs مليئة بالمعلومات في طلبي. لدي "عرض الكل" و "إخفاء جميع" وأود أن يكون لديهم الرسوم المتحركة Slidetoggle أيضًا (بدلاً من مجرد إظهار كل شيء). ولكن على IE6 ، يعمل Slidetoggle بطيئًا حقًا عند تطبيقه على كل عنصر.

هل يعرف أحد كيف يسرع هذا؟ أيضًا ، أقوم بتبديل الرموز الموجودة في MSG_head ، لكن هذا لا يبطئها. إذا قمت بإزالة Slidetoggle واستبدله بعرض/إخفاء (في العرض الكل/إخفاء الكل) ، فإنه يعمل بشكل جيد. ومع ذلك ، أود الحصول على الرسوم المتحركة إن أمكن.

<p class="msg_head" onclick="toggleSelection($(this));">Heading</p>
<div class="msg_body">
   content
</div>

وعرضي كل شيء وإخفاء جميع الوظائف ...

function toggleSelection(element) {
    element.next("msg_body").slideToggle(250);
    element.find(":first-child").toggleClass("ui-icon-circle-arrow-s");
    element.find(":first-child").toggleClass("ui-icon-circle-arrow-e");
}

function showall() {
    $(".msg_head").each(function() {
      $(this).next(".msg_body:hidden").slideToggle(250);
      $(this).find(":first-child").attr('class','ui-icon ui-icon-circle-arrow-s');
    });
}

function hideall() {
    $(".msg_head").each(function() {
      $(this).next(".msg_body:visible").slideToggle(250);
      $(this).find(":first-child").attr('class','ui-icon ui-icon-circle-arrow-e');
    });
}

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

هل كانت مفيدة؟

المحلول

لن يكون هذا كثيرًا من المساعدة ، لكنني سأضطر إلى الذهاب مع "لا" بسيط هنا. في نفس الوقت ، يبدو أن إعادة تشويه 100+ Div كثيرًا ، ولكن قد تكون قادرًا على الابتعاد عنها عندما يقوم الزائر بتشغيل متصفح حديث على آلة لائقة. ولكن إذا كنت تتطلع إلى تسريع هذا الأمر على وجه التحديد في IE6 ... لا يوجد الكثير الذي يمكنك القيام به. المتصفح قديم ، بما في ذلك محرك تقديم JavaScript ، ولن يتمكن أبدًا من فعل ما تريده أثناء النظر إليه على نحو سلس وجميل.

نصائح أخرى

ما هو إصدار jQuery الذي تستخدمه؟ إذا كنت لا تستخدم أحدث (1.4.1) ، فإنني أوصي بشدة بالترقية. قام مطورو JQuery بإصلاح كبير في الأداء لأحدث الإصدار لمعالجة المشكلات مثل تلك التي تصفها أعلاه. فيما يلي رابط لملاحظات الإصدار لمزيد من المعلومات: http://jquery14.com/day-01/jquery-14

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top