كيف أتلاشى 1 Div وأتلاشى في اثنين من divs ، ثم بعد 10 ثوان من عدم النشاط ، وتتلاشى في الدرجة الأولى مرة أخرى ، وتلاشى 2 divs؟

StackOverflow https://stackoverflow.com/questions/3582739

  •  01-10-2019
  •  | 
  •  

سؤال

هذا هو رمز بلدي حاليا:

$(function() {          
        $('#header_left').click(function(){
            $('#header_left_info').fadeOut('fast');
            $('#header_left').fadeOut('fast');
            $('#header_left_back').delay(250).fadeIn('fast');
        });
});

(تأخير 250 ميلي ثانية حتى لا يتعارض التلاشي)

على أي حال ، أود تعديل هذا الكود الحالي بحيث يتلاشى #Header_LEFT_BACK ، و #Header_LEFT مرة أخرى - ولكن فقط بعد 10 ثوان من عدم النشاط من قبل المستخدم. يجب أن يكون هذا بسيطًا ، ولكن بالنسبة لمصمم ويب بدون تجربة jQuery السابقة - إنه أمر صعب حقًا. Betcha أنت المبرمجون يمكنهم معرفة ذلك في غضون 20 ثانية!

شكرًا لك!

تم الرد على هذا السؤال. شكرًا!

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

المحلول

أعتقد أنك بعد شيء مثل هذا:

$(function() {          
  $('#header_left').click(function(){
    $('#header_left_info, #header_left').fadeOut('fast');
    $('#header_left_back').delay(250).fadeIn('fast');
  });

  var timer;
  $(document).bind("keypress mousemove", function() {
    clearTimeout(timer);
    timer = setTimeout(function() {
              $('#header_left_back').fadeOut('fast', function() {
                $('#header_left').fadeIn('fast');
              });
            }, 10000);
  });
});

بعد 10 ثوانٍ من عدم وجود حركة ماوس أو لوحة مفاتيح ، فإنها ستذهب في الاتجاه المعاكس ، وتبديلها مرة أخرى. يمكنك إضافة المزيد من الأحداث إذا لزم الأمر ، على سبيل المثال mousewheel, mousedown, ، كما هو محدد كما تحتاج إلى أن تكون. في كل مرة يحدث فيها حدث ما ، نبدأ العد التنازلي لمدة 10 ثانية ، إذا حدث حدث آخر ، فنحن نقوم بمسح المهلة وبدء تشغيل 10 ثوانٍ ، لذلك فقط 10 ثوانٍ من الخمول يجعل التلاشي يحدث في الاتجاه المعاكس.

نصائح أخرى

قام بول الأيرلندي بإنشاء أ idletimer البرنامج المساعد ل jQuery. إنه مفيد جدا.

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