jQuery متحفظة mouseover/mouseout Keep Drop Menu
-
25-09-2019 - |
سؤال
أحاول أن أجعل قائمة منسدلة أساسية مع تحريك وأواجه المشكلة حيث لا يمكنني معرفة كيفية الحفاظ على الجزء المنسدلة حتى يترك الماوس. هل هناك طريقة سهلة لإخبار هذا بالبقاء مفتوحًا؟ أعلم أن ما لدي مخطئ تمامًا فيما يتعلق بوظيفة .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
لا تنتمي إلى StackOverflow