我正在使用jQuery superfish菜单,当下拉菜单打开时,我需要一个轻微的身体叠加颜色。我的想法是用一个正文执行此操作:在元素设置为固定位置后,使用jQuery检查菜单的悬停。
jQuery(document).ready(function($) {
$('ul.sf-menu').superfish({
delay: 200, // one second delay on mouseout
animation: {opacity:'show',height:'show'}, // fade-in and slide-down animation
speed: 300, // faster animation speed
cssArrows: false,
autoArrows: false // disable generation of arrow mark-up
});
/* My custom code */
$(".sf-menu li a").hover(function(){
$('body').addClass('dropdown-open');
},function(){
$('body').removeClass('dropdown-open');
});
});

body:after {
content: '';
display: none;
background-color: #000;
position: fixed;
z-index: 20;
opacity: 0.1;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100vw;
height: 100vh;
}
body.dropdown-open:after {
display: block;
}

不幸的是,此解决方案会导致我的叠加层一直闪烁。我想当下拉列表打开时,superfish插件已经有了内置函数。由于我不是开发人员,我无法找到解决方案。
感谢您的帮助。