为什么响应式菜单无法正常工作?

Why is the responisve menu not working properly?

我创建了一个响应式菜单。我和 css @media screen 一起工作,就像你在 this fiddle 上看到的那样。除了一件事,一切都很好。有时,当您在小菜单和大菜单之间切换时,菜单内容不会显示。查看 Jsfiddle 并调整输出的宽度 window。就像我说的那样,它有时会发生,所以如果第一次没有发生,请有时重新加载页面。

class menu 包含菜单内容。小菜单有一个 display none(它在单击按钮时向下滑动),大菜单使用 display 内联块。

只有当您在小菜单和大菜单之间切换时才会发生这种情况。从大到小都可以。

谁能帮我解决这个问题。

当您向上切换菜单时,向上滑动会在完成后在菜单上显示 none。在你的菜单向上滑动后它被隐藏了。当你变大时,它会保留显示:来自 JS 的 none,因此它不会显示。

解决这个问题的一种方法是强制它在大时始终可见

@media screen and (min-width: 550px){ /*big menu*/
    .menu{
        display:inline-block !important;
    }
}

该问题可能是由使用字符串的切换逻辑引起的。

在您的 javascript 中,您可以尝试更直观的代码,例如:

$('nav').on('click','.dropdown',function(){
    if($('.menu').css('display')=='none'){
        $('.menu').slideDown();
    }else{
        $('.menu').slideUp();
    }
}); 

它应该可以减少您的脚本错误。