سؤال

أحاول أن أجعل قائمة منسدلة أساسية مع تحريك وأواجه المشكلة حيث لا يمكنني معرفة كيفية الحفاظ على الجزء المنسدلة حتى يترك الماوس. هل هناك طريقة سهلة لإخبار هذا بالبقاء مفتوحًا؟ أعلم أن ما لدي مخطئ تمامًا فيما يتعلق بوظيفة .clickme mouseout لأنها ستفريغ القائمة وفقًا لذلك.

إذا كان بإمكان أي شخص المساعدة في هذه الحالة المحددة ، فسأكون ممتنًا للغاية.

$(document).ready(function() {

$('.clickme').mouseover(function() {
    $('#slidebox').animate({
        top: '+=160'
    }, 200, 'easeOutQuad');
});

$('.clickme').mouseout(function(){
    $('#slidebox').animate({
        top: '-=160'
    }, 200, 'easeOutQuad')
});

});

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

المحلول

هذا يجب أن يجعلك مستخفًا دون أي تغييرات في الترميز:

$('.clickme, #slidebox').hover(function() {
  $('#slidebox').stop().animate({ top: '30px' }, 200, 'easeOutQuad');
}, function() {
  $('#slidebox').stop().animate({ top: '-130px' }, 200, 'easeOutQuad');
});

نظرًا لأن عناصرك ليست ذات صلة بالوالدين/الطفل ، فإن وضع المواقف المطلقة في القائمة أسهل في القائمة 130px في CSS على أي حال) ، لذلك لا يوجد سبب لعدم استخدام حقيقة أن لها موقف مطلق. امنحها لقطة ، اختبرت على موقعك ، ويبدو أن السلوك الذي أريده في القائمة.

نصائح أخرى

تحقق من jquery hoverintent

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